WPF StaticResource用于宽度

时间:2018-04-06 08:57:52

标签: wpf

<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属性的有效值

我做错了什么?

1 个答案:

答案 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")优先于样式值。