我有一个要求,在窗口上我的按钮控件是不可见的,但是当用户意外地将鼠标悬停在该区域上时,该按钮变得可见。有点像复活节彩蛋。下面是我的XAML代码,但它似乎不起作用。
<Button Margin="0,0,20,0" Grid.Row="3" HorizontalAlignment="Right"
Name="CopyText" Width="75" Height="25">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Visibility" Value="Hidden" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Visibility" Value="Visible" />
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
答案 0 :(得分:1)
定义一个ControlTemplate
,边框内有透明背景+隐形按钮。然后在鼠标悬停在边框上,您可以将按钮的可见性设置为Visible。
MSDN对可见性方面表示了一些兴趣: 可见性不可见的元素不参与输入事件(或命令),不影响布局的测量或排列过程,不在标签序列中,也不会在命中测试中报告。
这解释了你注意到的行为。
然后,如果您编写ControlTemplate
,则点击后按钮不会再次隐藏
可能是因为它有焦点:它会让人觉得有针对性的元素不能
被设置为隐形。我会尝试在点击处理程序中使其松散焦点(专注于smthg else)。