WPF按钮触发器更改子Textblock前景XAML

时间:2019-05-08 12:09:37

标签: wpf xaml

我在XAML中具有此按钮:

<Button Style="{StaticResource HeadButton}">
    <TextBlock Style="{StaticResource HeadButtonText}">Add flavor</TextBlock>
</Button>

我需要当您将鼠标悬停在按钮上时,TextBlock前景属性应该更改(我知道我可以在按钮中使用Content,但出于其他原因,我还是这样做了。)

我该如何实现?

2 个答案:

答案 0 :(得分:1)

您可以绑定到按钮的前台属性,并使用触发器对其进行修改。

<Style x:Key="Test" TargetType="{x:Type Button}">
       <Style.Triggers>
          <Trigger Property="IsMouseOver" Value="True">
             <Setter Property="Foreground" Value="Red"/>
          </Trigger>
       </Style.Triggers>
</Style>


<Button Style="{StaticResource Test}">
  <TextBlock Text="Click HERe" Foreground="{Binding Path=Foreground,  RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Button}}}"/>
</Button>

答案 1 :(得分:0)

这是您要实现的代码示例。尽管我可能会指出,最好不要将TextBlock放在按钮内,因为文本字段已经存在,并且让TextBlock使用文本字段而不是在诸如{{ 1}}

HTML