在WPF自定义控件中,我使用触发器机制根据该自定义控件的另一个属性实现自定义控件的外观更改,例如当我的自定义控件更改其属性AStatus以将其背景色更改为Green时。
<Trigger Property="AStatus" Value="Available">
<Setter TargetName="PART1" Property="Background" Value="Green"/>
<Setter TargetName="PART_Backgr" Property="Background" Value="Green"/>
</Trigger> 但是Silverlight缺乏触发了功能。为了改变银灯中自定义控件的外观,应该使用VisualStateManager。但是在VisualStateManager.的帮助下,我找不到实现这个条件的方法。
当此自定义控件的另一个属性发生更改时,如何实现更改Silverlight自定义控件的样式?
发布于 2010-07-25 21:08:06
你有两个合理的选择:
1)在属性"AStatus“的支持代码中(您可能希望创建一个依赖项属性),使用VisualStateManager切换到一个新的VisualState。但是,在使用这种技术时,还没有像WPF那样的完全XAML解决方案。创建一个表示要使用的样式/设置器(非常类似于触发器)的VisualState。
这里是我博客中的一个例子。
2)如果使用Blend 4,则可以使用DataStateBehavior执行可以手动完成的工作(如选项1中所示)。您可以下载共混4 SDK来使用XAML (或可视化设计器)进行这些类型的更改。
不过,如果编写自定义控件以最小化对其他程序集的依赖,则通常使用#1。
https://stackoverflow.com/questions/3330010
复制相似问题