2010-04-16 2 views
1

У меня вопрос о определениях стиля wpf xaml. Когда я пытаюсь установить стиль таким образом:wpf, Style, Setters

<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}"> 

все работает отлично.

Итак, в чем разница?

ответ

4

StackPanel.Style является свойством типа Style, так что без оборачивания Setter в <Style></Style> вы пытаетесь установить Style свойство к чему-то типа Setter.

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