我正在寻找一种简单的方法来在我的 Silverlight 应用程序中的每个控件上设置 ClickMode="Pressed"(显然继承自 ButtonBase)。
该解决方案还应该访问作为控件模板一部分的任何 ButtonBase-Control,例如 SilverlightToolkit 的 ComboBox。
我必须为此创建一个自定义主题吗?如果是,我如何重用现有主题并覆盖此属性?
提前致谢。
我正在寻找一种简单的方法来在我的 Silverlight 应用程序中的每个控件上设置 ClickMode="Pressed"(显然继承自 ButtonBase)。
该解决方案还应该访问作为控件模板一部分的任何 ButtonBase-Control,例如 SilverlightToolkit 的 ComboBox。
我必须为此创建一个自定义主题吗?如果是,我如何重用现有主题并覆盖此属性?
提前致谢。
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 及其子类创建样式。
你实际上回答了你自己的问题。是的,您可以使用现有样式来确保在您的应用程序中的每个 ButtonBase 控件上设置 ClickMode 属性。
这是一种让你前进的风格。这是一个未命名的样式,它将确保从 ButtonBase 扩展的任何控件都将继承此样式。
<Style TargetType="ButtonBase">
<Setter Property="ClickMode" Value="Pressed"/>
</Style>