C# 以编程方式设置工具提示持续时间的问题

C# 以编程方式设置工具提示持续时间的问题,c#,wpf,tooltip,C#,Wpf,Tooltip,我遇到了一种情况,我需要创建一个工具提示对象,并在用户将鼠标悬停在我的应用程序中的特定区域时显示它 我可以让工具提示显示得很好。问题是我需要它在几秒钟后发出噗噗声。我知道ToolTipService.SetShowDuration,我也尝试过使用它,但运气不太好 以下是我在MouseMove事件处理程序中得到的内容: _toolTip.Placement = PlacementMode.Relative; _toolTip.Horizontal = e.X; _toolTip.VerticalO

我遇到了一种情况,我需要创建一个工具提示对象,并在用户将鼠标悬停在我的应用程序中的特定区域时显示它

我可以让工具提示显示得很好。问题是我需要它在几秒钟后发出噗噗声。我知道ToolTipService.SetShowDuration,我也尝试过使用它,但运气不太好

以下是我在MouseMove事件处理程序中得到的内容:

_toolTip.Placement = PlacementMode.Relative;
_toolTip.Horizontal = e.X;
_toolTip.VerticalOffset = e.Y;
_toolTip.Content = stuffs;
_toolTip.IsOpen = true;
我已尝试设置以下内容:

someObject.ToolTip = _toolTip;
ToolTipService.SetShowDuration(someObject, 5);
最后两行没有任何变化。工具提示仍然可见并保持可见。我用错服务了吗?任何想法都将不胜感激

试试这个

 <Border Name="border" ToolTip="some message" MouseEnter="border_MouseEnter" Background="red" Margin="50"/>

  ToolTip tool = new ToolTip();
        private void border_MouseEnter(object sender, MouseEventArgs e)
        {
        tool.Placement = PlacementMode.Relative;
        tool.HorizontalOffset = 100; 
        tool.VerticalOffset = 200;
        tool.Content = "stuffs";
        tool.IsOpen = true;
        border.ToolTip = tool;
        ToolTipService.SetShowDuration(border, 5000);
        }

工具提示工具=新工具提示();
私有无效边框\鼠标指针(对象发送器,鼠标指针)
{
tool.Placement=PlacementMode.Relative;
刀具水平偏移=100;
刀具垂直偏移=200;
tool.Content=“stuffs”;
tool.IsOpen=真;
border.ToolTip=工具;
ToolTipService.SetShowDuration(边框,5000);
}

我为这个问题制定了一个解决方案

为了提供更多的背景信息,我在WindowsFormsHost对象中创建了一个飞机的3D模型。当用户将鼠标悬停在已识别的零件上时,我需要出现一个工具提示

我创建了一个工具提示实例,并在我的MouseMove事件中执行了如下操作:

// selectedPart will be null if no part is selected
if(selectedPart != null && prevSelectedPart != selectedPart)
{
    toolTip.IsOpen = false;
    host.ToolTip = toolTip;
    toolTip.IsOpen = true;
}
else if (prevSelectedPart == selectedPart  && prevSelectedPart != null)
{
    toolTip.IsOpen = true;
}
else
    toolTip.IsOpen = false;

对我来说,这就是诀窍。

将代码推入MouseEnter事件而不是MouseOver如何?你试过了吗?我错了,是在MouseMove事件中。我必须以编程方式创建ToolTip对象。当我这样做时,ToolTipService.SetShowDuration似乎没有帮助:(通过编辑,工具提示是否会在5秒后消失?我以前尝试过这个,但它不起作用。)(