有些外部Windows程序带有一个可以调用我的COM应用程序的按钮,它会打开WPF窗口。下面的代码可以打开我的窗口。呼叫窗口将变为非活动状态,但仍在注册点击。当我的窗口关闭时,它开始执行所有缓存的单击。我对调用窗口的应用程序没有任何控制。如果将调度程序更改为BeginInvoke,则不会取消激活应用程序窗口,而每次单击按钮都会打开多个新实例。如何停止停用窗口中的缓存点击?
public void DoSetupDialog()
{
Dispatcher.Invoke(() =>
{
if (SetupWindow != null) return;
SetupWindow = new SetupWindow {Topmost = true};
SetupWindow.ShowDialog();
if (ObjectsCount <= 1)
{
Close();
}
});
}