如何在WPF中强制显示工具提示?

7

当我移动鼠标时,我想显示一个工具提示。 下面是我的代码:

 private void Grid_MouseMove(object sender, MouseEventArgs e)
        {
            Grid grid = (Grid) sender;
            if (e.GetPosition(grid).X < 100)
                grid.ToolTip = e.GetPosition(grid).X.ToString();
            else
                grid.ToolTip = null;
        }

然而,当我点击网格后,提示框就会消失。有没有办法强制显示提示框?
2个回答

8
var oldTT = SomeElement.ToolTip as ToolTip;
if (oldTT != null) oldTT.IsOpen = false;
SomeElement.ToolTip = new ToolTip
{
     Content = "Lalalalala",
    IsOpen = true,
};

或者

var tt = SomeElement.ToolTip as ToolTip;
if (tt != null) tt.IsOpen = true;

在WPF中,ToolTip只是一个object。这段代码可能是用于Winforms的ToolTip - Gerard
1
@Gerard,当然。ToolTip属性的类型像Label.Content一样是对象。但是当您使用ToolTip类型设置值时,您可以轻松访问其属性,例如.IsOpen或Content。默认情况下,工具提示属性是绑定的。 - tmt

3

TooltipService.ShowDuration是有效的,但您必须将其设置在具有工具提示的对象上,如下所示:

   <Label ToolTipService.ShowDuration="120000" Name="lblTooltip"  Content="Shows tooltip">
<Label.ToolTip>
    <ToolTip>
        <TextBlock>Hi world!</TextBlock>
    </ToolTip>
</Label.ToolTip>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接