在WPF中的标签鼠标悬停上显示按钮

时间:2014-06-06 10:27:46

标签: wpf

在我的应用程序中,我有Startup Window包含(提示,信息等)。窗口的一部分在左侧包含3 Labels,在右侧包含3隐藏Buttons。我想要的是每当用户悬停在位于Labels另一侧的Label按钮之一时。

我知道如果我使用Button将鼠标悬停在Triggers上,以及如何在我悬停Label时显示按钮,则会显示{{1}}。

这样的事情有可能完成吗?

1 个答案:

答案 0 :(得分:5)

您可以使用DataTriggerBinding.ElementName属性轻松完成此操作。这个简单的例子说明了如何:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Button Grid.Row="0" Content="Click me">
        <Button.Style>
            <Style TargetType="{x:Type Button}">
                <Setter Property="Visibility" Value="Hidden" />
                <Style.Triggers>
                    <DataTrigger Binding="{Binding IsMouseOver, 
                        ElementName=SomeLabel}" Value="True">
                        <Setter Property="Visibility" Value="Visible" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>
    <Label Grid.Row="1" Name="SomeLabel" Content="Hover over me" 
        Background="LightGreen" />
</Grid>

当尝试在另一个UI元素发生某些事件时影响一个UI元素时,请尝试记住这一点:

  

DataTrigger添加到将要更改自身的UI元素以响应另一个UI元素的更改...您很可能会遇到相反的问题。