我有一个带有一些工具提示按钮的应用程序。其中一个按钮(以下称为“运行”按钮)在按下时开始在我的应用程序之外触发进程。因为我的应用程序需要从这些进程的输出中获取数据,所以我让它暂停,直到所有进程完成运行,然后在没有用户进一步干预的情况下获取数据。当然,这意味着我的应用程序在外部进程运行时挂起,但这没什么大不了的,因为用户可以点击离开并处理我的应用程序之外的其他内容;我的申请落到了后台。不幸的是,与“运行”按钮相关的工具提示不会落到后台,并且在我的代码停止执行之前它不会消失。
以下代码略有帮助:
private void RunButton_Click(object sender, RoutedEventArgs e)
{
/*Gets the tooltip out of the way while running, otherwise it will stay in front of everything until the optimizers finish.*/
ToolTipService.SetShowDuration(runButton, 0);
RunTooltip.IsOpen = false;//Doesn't close fast enough. It fades a little then hangs there until the code stop running. googling has been remarkably unhelpful.
Run();
ToolTipService.SetShowDuration(runButton, 5000);
}
RunTooltip 是相关工具提示的名称。将持续时间设置为 0 或将 isOpen 设置为 false 具有相同的行为:导致工具提示变为半透明(但无论如何仍高于其他窗口),直到 Run() 完成。
似乎有一种方法可以使用 Windows.Forms.Tooltips 立即发生工具提示褪色(请参阅http://msdn.microsoft.com/en-us/library/system.windows.forms.tooltip.usefading.aspx)但是WPF 工具提示似乎不再是这种情况(http://msdn.microsoft.com/en-us/library/ms617634.aspx)
除了完全删除此按钮的工具提示之外,如何防止此工具提示妨碍用户在等待我的应用程序完成时想做的任何事情?谢谢