2010-04-16 12 views
1

J'ai une question sur les définitions de style wpf xaml. Lorsque je tente de définir le style de cette façon:wpf, Style, Setters

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

soulève exception avec le message - 'System.Windows.Setter' is not a valid value for property 'Style'.

quand j'utilise cette définition:

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

tout fonctionne très bien.

Alors, quelle est la différence?

Répondre

4

StackPanel.Style est une propriété de type Style, sans envelopper le Setter dans <Style></Style> vous essayez de définir la propriété Style à quelque chose du type Setter.

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