wpf,Style,Setters

时间:2010-04-16 12:56:22

标签: wpf styles stackpanel setter

我对wpf xaml样式定义有疑问。当我尝试以这种方式设置样式时:

<StackPanel Orientation="Vertical">
      <StackPanel.Style>
          <Setter Property="BusinessModeler:GraphItemBehaviour.IsBroughtIntoViewWhenSelected" Value="True" />
      </StackPanel.Style>
</StackPanel>

使用消息'System.Windows.Setter' is not a valid value for property 'Style'引发异常。

当我使用这个定义时:

<Style x:Key="itemBehaviour" > 
    <Setter Property="BusinessModeler:GraphItemBehaviour.IsBroughtIntoViewWhenSelected" Value="True" />
</Style>
<StackPanel Orientation="Vertical" Style="{StaticResource itemBehaviour}">
一切正常。

那么,有什么区别?

1 个答案:

答案 0 :(得分:4)

StackPanel.StyleStyle类型的属性,因此如果没有将Setter包裹在<Style></Style>中,那么您尝试将Style属性设置为输入Setter

<StackPanel.Style>
    <Style>
        <Setter Property="BusinessModeler:GraphItemBehaviour.IsBroughtIntoViewWhenSelected" Value="True" />
    </Style>
</StackPanel.Style>