在WPF中,在标签鼠标悬停时显示按钮

5
在我的应用程序中,我有一个包含(提示、信息等)的“启动窗口”。窗口的一部分包含左侧的3个“标签”和右侧隐藏的3个“按钮”。我的目标是,每当用户将鼠标悬停在其中一个“标签”上时,位于该“标签”另一侧的“按钮”会出现。
我知道如何使用“触发器”在悬停在“按钮”上时显示“按钮”,但是如何在悬停在“标签”上时显示“按钮”呢?
这种操作是否可行?
1个回答

9

您可以通过使用 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元素中... 反过来做很可能会遇到问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接