在我的应用程序中,我有Startup Window
包含(提示,信息等)。窗口的一部分在左侧包含3 Labels
,在右侧包含3隐藏Buttons
。我想要的是每当用户悬停在位于Labels
另一侧的Label
按钮之一时。
我知道如果我使用Button
将鼠标悬停在Triggers
上,以及如何在我悬停Label
时显示按钮,则会显示{{1}}。
这样的事情有可能完成吗?
答案 0 :(得分:5)
您可以使用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元素的更改...您很可能会遇到相反的问题。