为Silverlight中的所有类似Button的控件设置ClickMode

时间:2010-08-10 12:05:22

标签: silverlight button silverlight-4.0 silverlight-toolkit

我正在寻找一种简单的方法来设置我的Silverlight应用程序中的每个Control上的ClickMode =“Pressed”(显然从ButtonBase继承)。

该解决方案还应该访问任何ButtonBase-Control,它是像SilverlightToolkit的ComboBox一样的controltemplate的一部分。

我是否必须为此创建自定义主题?如果是,我如何重用现有主题并覆盖此属性?

提前致谢。

2 个答案:

答案 0 :(得分:1)

隐式样式下的

http://msdn.microsoft.com/en-us/library/system.windows.style%28v=VS.95%29.aspx

  

在Silverlight 4中,您可以隐式设置样式。也就是说,您可以将某种样式应用于某种类型的所有元素。声明资源时没有x:Key值,x:Key值假定TargetType属性的值。如果隐式设置样式,则样式仅应用于与TargetType完全匹配的类型,而不应用于从TargetType值派生的元素。例如,如果为应用程序中的所有ToggleButton控件隐式创建样式,并且您的应用程序具有ToggleButton和CheckBox控件(CheckBox派生自ToggleButton),则该样式仅应用于ToggleButton控件。

因此似乎无法为ButtonBase及其子类创建样式。

答案 1 :(得分:0)

你实际回答了自己的问题。是的,您可以使用现有样式来确保在应用程序中的每个ButtonBase控件上设置ClickMode属性。这是一种让你前进的风格。这是一种未命名的样式,它将确保从ButtonBase扩展的任何控件都将继承此样式。

 <Style TargetType="ButtonBase">
        <Setter Property="ClickMode" Value="Pressed"/>
 </Style>

我希望这会有所帮助。