我对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}">
一切正常。
那么,有什么区别?
答案 0 :(得分:4)
StackPanel.Style
是Style
类型的属性,因此如果没有将Setter
包裹在<Style></Style>
中,那么您尝试将Style
属性设置为输入Setter
。
<StackPanel.Style>
<Style>
<Setter Property="BusinessModeler:GraphItemBehaviour.IsBroughtIntoViewWhenSelected" Value="True" />
</Style>
</StackPanel.Style>