在我的应用程序中,我有一个包含(提示、信息等)的“启动窗口”。窗口的一部分包含左侧的3个“标签”和右侧隐藏的3个“按钮”。我的目标是,每当用户将鼠标悬停在其中一个“标签”上时,位于该“标签”另一侧的“按钮”会出现。
我知道如何使用“触发器”在悬停在“按钮”上时显示“按钮”,但是如何在悬停在“标签”上时显示“按钮”呢?
这种操作是否可行?
我知道如何使用“触发器”在悬停在“按钮”上时显示“按钮”,但是如何在悬停在“标签”上时显示“按钮”呢?
这种操作是否可行?
您可以通过使用 DataTrigger
和 Binding.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元素中... 反过来做很可能会遇到问题。