2017-05-17 46 views
0

如果相應屬性設置在Style之外,是否可以將Trigger保持在Style之內?WPF - 如果設置了對應屬性,則保持觸發

第二個Button工作正常,但Trigger不起作用的第一個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> 

回答

1

您必須聲明在Style默認值。

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

看一看在依賴項屬性上https://msdn.microsoft.com/en-us/library/ms743230.aspx

設置優先級表如果你想讓它充滿活力。你必須編寫自己的CustomButton另外DependencyProperty並編寫你自己的Style

相關問題