2017-05-17 1 views
0

Ist es möglich, die Trigger innerhalb Style zu halten, wenn die entsprechende Eigenschaft außerhalb der Style festgelegt ist?WPF - Trigger beibehalten, wenn die entsprechende Eigenschaft festgelegt ist

Die zweite Button funktioniert gut, aber die Trigger funktioniert nicht auf der ersten Button.

<StackPanel> 
    <StackPanel.Resources> 
     <Style TargetType="{x:Type Button}"> 
      <Style.Triggers> 
       <Trigger Property="IsMouseOver" 
         Value="True"> 
        <Setter Property="Foreground" 
          Value="GreenYellow" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </StackPanel.Resources> 
    <Button Foreground="Orange">The First Button</Button> 
    <Button>The Second Button</Button> 
</StackPanel> 

Antwort

1

Sie haben Ihren Standardwert in den Style zu erklären.

<StackPanel> 
    <StackPanel.Resources> 
     <Style TargetType="{x:Type Button}"> 
      <Setter Property="Foreground" Value="Orange"/> 
      <Style.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Foreground" Value="GreenYellow" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </StackPanel.Resources> 
    <Button>The First Button</Button> 
    <Button>The Second Button</Button> 
</StackPanel> 

Werfen Sie einen Blick auf die Abhängigkeitseigenschaft Einstellung Präzedenz Liste auf https://msdn.microsoft.com/en-us/library/ms743230.aspx

Wenn Sie es dynamisch machen wollen. Sie müssen Ihre eigenen CustomButton mit einer zusätzlichen DependencyProperty schreiben und schreiben Sie Ihre eigenen Style dafür.

1

Der Grund, warum dies nicht der Fall, dass Werte Vorrang lokalen Abhängigkeitseigenschaft funktioniert über Eigenschaftswerte festgelegt durch Setter nimmt: https://msdn.microsoft.com/en-us/library/ms743230(v=vs.110).aspx.

Also nein, es ist nicht möglich, ein Setter in einem Style zu verwenden, um eine Eigenschaft zu setzen, die auf einem lokalen Wert gesetzt wurden:

<Button Foreground="Orange">The First Button</Button> 
Verwandte Themen