<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中合并样式?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)