当您将鼠标悬停在控件上时,许多程序会在状态栏的标签中显示一小段信息,告诉您单击该控件时它将执行什么操作,然后当鼠标离开其区域时它会重置文本。 PaintShop Pro X4 就是一个例子。
我想在我的应用程序中执行此操作。当然,我可以通过使用鼠标输入事件更改状态栏中标签的内容,然后在鼠标离开事件上清空它,就像我在以前的一些程序中所做的那样,但这意味着我必须创建这些对于我想要在状态栏中显示其信息的每个控件,有 2 个事件处理程序(我可以使用一个处理程序进行重置,并且让所有控件都使用它),但我有大量的控件用于此目的。有没有更好的方法可以在不使用任何 C# 或事件处理程序的情况下完成此操作?我可以在 XAML 中执行此操作,有点像 bool 值到可见性转换器,但只是将文本设置为某些内容,因为我真的不想为我什至可能不用于任何东西的控件创建大量事件处理程序(例如组框,我不会在代码中使用它们,但我想要它的状态信息)?谢谢。
最佳答案
您可以使用UIElement.IsMouseOver
property在触发器
中执行您想要的操作。尝试这样的事情:
<TextBlock>
<TextBlock.Style>
<Style>
<Setter Property="Text" Value="Normal text" />
<Style.Triggers>
<Trigger Property="UIElement.IsMouseOver" Value="True">
<Setter Property="Text" Value="Mouse over text" />
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
关于c# - 将鼠标悬停在控件上时显示标签中的文本而不使用事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21511054/