c# - 将鼠标悬停在控件上时显示标签中的文本而不使用事件

标签 c# wpf xaml

当您将鼠标悬停在控件上时,许多程序会在状态栏的标签中显示一小段信息,告诉您单击该控件时它将执行什么操作,然后当鼠标离开其区域时它会重置文本。 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/

相关文章:

c# - 类作业 - C# 中的 shellsort?

c# - 创建一个带有圆角的自定义形状按钮

c# - 让方法对 DLL 中的 PropertyChanged 使用react

c# - 绑定(bind)边界可见性/隐藏在 WPF 中

c# - WPF自定义控件中的"The type reference cannot find a public type..."错误

c# - Server.MapPath 的单元测试

c# - 经过一段空闲时间后,图像未从数据库加载

c# - 在 ASP.NET 5 RC1 中从 Tag Helper 访问路由数据

wpf - 如何选择 WPF 的图标作为应用程序的图标?

c# - UWP app .cs 文件从 xaml.cs 继承静态变量