【发布时间】:2021-10-20 10:15:59
【问题描述】:
我有两个应用程序。其中之一是第 3 方,它将消息发送到我的 WPF 应用程序。有两种类型的消息:“隐藏”和“显示”。
在“隐藏”时,我的应用会隐藏自己
Window window = Application.Current.MainWindow;
window.WindowState = WindowState.Minimized;
window.Hide();
相应地在“显示”中显示为:
Window window = Application.Current.MainWindow;
if (!window.IsVisible)
window.Show();
if (window.WindowState == WindowState.Minimized)
window.WindowState = WindowState.Normal;
window.Activate();
window.Focus();
窗口本身已经订阅了激活事件。并在出现时记录“显示的应用程序”。
假设在第 3 方应用程序中,它看起来像相应的两个按钮“显示”和“隐藏”,用户可以随时按下。这两个应用程序都在同一台显示器上工作。我的 WPF 应用程序还有一个按钮“显示 3rd 方应用程序”,以防它在前面(两个应用程序都在全屏、最顶层模式下工作)
问题是有时(没有找到原因)我的应用程序在用户第一次按“显示”后没有显示。所以他不得不按了两次。虽然日志包含
显示的应用程序
两次,每次用户按下按钮时。
我的应用也订阅了 Deactivated 事件。每次引发事件时,它都会记录“焦点丢失”。 所以我希望我的日志在两个“显示的应用程序”之间也有“焦点丢失”,因为应该在用户第二次按下“显示”按钮时激活第 3 方应用程序,因为焦点在那里......但它没有发生.
有什么想法吗?
有什么想法为什么第一次没有显示应用程序?
【问题讨论】: