通过按钮模板C#WPF更改标签颜色

时间:2014-02-11 13:59:17

标签: c# wpf xaml

在尝试在标签上使用Click事件时,我找到了一个使用按钮但应用模板的示例,使其看起来像一个标签。如下图所示:

<Button Name="LooksLikeALabel" Canvas.Left="279" Canvas.Top="-37" Height="26" Width="48" Content="Words" Click="answer1Label_MouseUp" MouseEnter="answer1Label_MouseEnter" MouseLeave="answer1Label_MouseLeave">
            <Button.Template>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Label x:Name="buttonLabel" Content="{TemplateBinding Content}"/>
                </ControlTemplate>
            </Button.Template>
        </Button>

现在我希望能够在鼠标上更改文本的颜色。更改按钮上的前景在后面和通过XAML的代码中没有任何机器人。更改标签前景的颜色通过XAML工作,但由于任何原因我无法通过后面的代码访问标签意味着我无法通过我的C#访问任何标签控件。

我是否缺少某些东西来控制后面代码中的标签?或者,是否有更好的方法在标签上进行点击事件?

1 个答案:

答案 0 :(得分:2)

将触发器置于按钮的ControlTemplate内:

<Button Name="LooksLikeALabel" Canvas.Left="279" Canvas.Top="-37" Height="26"
        Width="48" Content="Words">
   <Button.Template>
      <ControlTemplate TargetType="{x:Type Button}">
         <Label x:Name="buttonLabel" Content="{TemplateBinding Content}"/>
         <ControlTemplate.Triggers>
           <Trigger Property="Button.IsMouseOver" Value="True">
             <Setter TargetName="buttonLabel" Property="Foreground" Value="Red"/>
           </Trigger>
         </ControlTemplate.Triggers>
       </ControlTemplate>
   </Button.Template>
</Button>