在调用showdialog期间缓存鼠标事件

时间:2018-09-26 12:46:41

标签: c# wpf invoke

有些外部Windows程序带有一个可以调用我的COM应用程序的按钮,它会打开WPF窗口。下面的代码可以打开我的窗口。呼叫窗口将变为非活动状态,但仍在注册点击。当我的窗口关闭时,它开始执行所有缓存的单击。我对调用窗口的应用程序没有任何控制。如果将调度程序更改为BeginInvoke,则不会取消激活应用程序窗口,而每次单击按钮都会打开多个新实例。如何停止停用窗口中的缓存点击?

    public void DoSetupDialog()
    {
        Dispatcher.Invoke(() =>
        {
            if (SetupWindow != null) return;
            SetupWindow = new SetupWindow {Topmost = true};
            SetupWindow.ShowDialog();
            if (ObjectsCount <= 1)
            {
                Close();
            }

        });
    }

0 个答案:

没有答案