如何以编程方式显示WPF/C#Windows.Control.ToolTip?

MrG*_*les 28 .net tooltip wpf-controls

对于Windows.Control.ToolTip似乎没有.Show()类型的方法,包括在ToolTipService中.

Ray*_*Ray 43

您需要做的是确保控件上的ToolTip是ToolTip类型.然后你可以将IsOpen属性设置为true,如下所示:

ToolTip tooltip = new ToolTip{ Content = "My Tooltip" };
NameTextBox.ToolTip = tooltip;
tooltip.IsOpen = true;    
Run Code Online (Sandbox Code Playgroud)

  • 我建议添加`tooltip.StaysOpen = false` :-) (12认同)

Ant*_*ony 6

如果您想控制工具提示保持打开状态的时间,您可以订阅该Opened事件并在关闭工具提示之前设置一个时间延迟。

订阅必须在之前完成IsOpen = true并且它必须是一个异步方法以避免挂断 UI。

var tooltip = new ToolTip { Content = "New tooltip text" };
MyControln.ToolTip = tooltip;
tooltip.Opened += async delegate (object o, RoutedEventArgs args)
{
    var s = o as ToolTip;
    // let the tooltip display for 1 second
    await Task.Delay(1000);
    s.IsOpen = false;
    // wait till the close tooltip animation finishes before changing to old tooltip text
    await Task.Delay(1000);
    s.Content = "Old tooltip text";
};
tooltip.IsOpen = true;
Run Code Online (Sandbox Code Playgroud)


Ray*_*yes 2

正在显示您真正想做的事情的工具提示。工具提示对于大多数用户来说都有明确的含义,并且期望它在移动鼠标时消失(并且当您将鼠标悬停在相关项目上时可以返回)。

如果您的目的是引起人们对某些事物的注意,您是否考虑过某种形式的完全由您控制的浮动框,WPF 使这变得简单!