如何在Silverlight中合并样式?

如何在Silverlight中合并样式?,第1张

概述我的目标是扩展已设置的对象样式.假设我有以下两种风格: <Style TargetType="Ellipse" x:Key="OriginalStyle"> <Setter Property="Fill" Value="Blue"/> <Setter Property="Width" Value="100"/> <Setter Property="Height" Value 我的目标是扩展已设置的对象样式.假设我有以下两种风格:

<Style targettype="Ellipse" x:Key="OriginalStyle">    <Setter Property="Fill" Value="Blue"/>    <Setter Property="WIDth" Value="100"/>    <Setter Property="Height" Value="200"/></Style><Style targettype="Ellipse" x:Key="NewStyle">    <Setter Property="Fill" Value="Red"/></Style>

我想做的是将OriginalStyle分配给Ellipse,然后应用第二种样式只更改它影响的属性.理想情况下,我想做这样的事情:

Style OriginalStyle;Style NewStyle;Ellipse ellipse = new Ellipse();ellipse .Style = OriginalStyle;// Later in an event hanlerellipse.Style = NewStyle; // I would want to keep the settings from the old style in here: in this example setting the style like this would make me lose the WIDth and Height propertIEs!

我试图动态构造一个新的Style并添加NewStyle和oldStyle的属性 – 但是样式的Property属性总是为null所以这导致死胡同:

Style combinedStyle = new Style();foreach (Setter setter in old.Setters){     combinedStyle.Setters.Add(setter);  // Get exception "Element is already the child of another element."}foreach (Setter setter in NewStyle.Setters){     combinedStyle.Setters.Add(setter);  // Get exception "Element is already the child of another element."}

似乎无法在Silverlight中动态合并样式.有人可以证实这一点,或者告诉我一个更好的方法来实现合并吗?

解决方法 “BasedOn”是否适用于Silverlight? // wpf开发者,永远不会确定 总结

以上是内存溢出为你收集整理的如何在Silverlight中合并样式?全部内容,希望文章能够帮你解决如何在Silverlight中合并样式?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1006039.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存