<Style x:Key="Small" TargetType="Button">
<Setter Property="Width" Value="80"/>
</Style>
<Style x:Key="DefaultButtonStyleSmall" TargetType="Button" BasedOn="{StaticResource ButtonBaseStyle}">
<Setter Property="Width" Value="{StaticResource Small}" />
</Style>
我收到错误
System.Window.Style不是setter上System.Windows.FrameworkElement.Width属性的有效值
我做错了什么?
答案 0 :(得分:3)
您正在为属性分配样式,而不是为具有该属性的控件分配样式。由于您显然想要使用Style中的值,因此它不能是Style本身 - 它必须与目标属性的类型相同,即Double
:
定义system
命名空间
xmlns:system="clr-namespace:System;assembly=mscorlib"
将Small
定义为Double
,而不是Style
:
<system:Double x:Key="Small">80</system:Double>
此外,请注意,仅当按钮没有设置Width
时,此功能才有效,因为本地值(例如Width="Auto"
)优先于样式值。