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

问题描述 投票:1回答:2

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

该解决方案还应该访问作为控件模板一部分的任何ButtonBase-Control,例如SilverlightToolkit的ComboBox。

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

提前感谢。

silverlight button silverlight-4.0 silverlight-toolkit
2个回答
0
投票

您实际上回答了自己的问题。是的,您可以使用现有样式来确保在应用程序中的每个ButtonBase控件上都设置了ClickMode属性。

这里有一种风格,可以助您一臂之力。这是一种未命名的样式,它将确保从ButtonBase扩展的所有控件都将继承此样式。

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

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及其子类创建样式。

© www.soinside.com 2019 - 2024. All rights reserved.