在MouseOver WPF上更改Label的前景色

时间:2012-11-29 00:53:58

标签: c# .net wpf xaml expression-blend

我遇到以下问题:我有一个Button,里面有StackPanelContentControl内有LabelStackPanel ,并且我已设置按钮的属性IsMouseOverIsPressed以在动作发生时更改按钮的颜色。但是,当鼠标悬停在按钮上时,我想反转标签的颜色。

这是我的按钮代码:(因为我认为我的描述不够清晰):

<Button Template="{StaticResource OnMouseOver}" ToolTip="Release" >
    <StackPanel Orientation="Horizontal">
        <ContentControl Template="{StaticResource Release}"/>
        <Label Content="Release" Foreground="#457345" />
    </StackPanel>
</Button>

这是我按下按钮时以及当鼠标悬停在按钮上时更改按钮属性的方式:

<ControlTemplate TargetType="Button" x:Key="OnMouseOver">
    <Border x:Name="border" Background="Transparent">
        <ContentPresenter ContentSource="Content" />
    </Border>
    <ControlTemplate.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter TargetName="border" Property="Background" Value="#A1CCA1"/>
        </Trigger>
        <Trigger Property="IsPressed" Value="True">
            <Setter TargetName="border" Property="Background" Value="#AFD8AF"/>
        </Trigger>
    </ControlTemplate.Triggers>
</ControlTemplate>

为了记录,我尝试为我的标签做ControlTemplate之类的事情,但它没有用,我的标签在我做的时候就消失了。

你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

    <ControlTemplate TargetType="Button" x:Key="OnMouseOver">
<Border x:Name="border" Background="Transparent">       
    <StackPanel Orientation="Horizontal">
            <ContentControl />
            <Label x:Name="label" Content="Release" Foreground="#457345" />
        </StackPanel>
</Border>
<ControlTemplate.Triggers>
    <Trigger Property="IsMouseOver" Value="True">
        <Setter TargetName="border" Property="Background" Value="#A1CCA1"/> 
         <Setter TargetName="label" Property="Foreground" Value="#AFD8AF"/>     
    </Trigger>
    <Trigger Property="IsPressed" Value="True">
        <Setter TargetName="border" Property="Background" Value="#AFD8AF"/>
         <Setter TargetName="label" Property="Foreground" Value="#A1CCA1"/> 
    </Trigger>
</ControlTemplate.Triggers>

<Button x:Name="button" Template="{StaticResource OnMouseOver}" ToolTip="Release" Height="42" VerticalAlignment="Bottom" Margin="235,0,127,143" >

    </Button>