我创建了一个具有覆盖模式的 WPF 应用程序。在这种模式下,整个应用程序变得半透明。我现在希望能够通过此窗口单击以操作其背后的元素 [其他程序 UI、桌面图标等]
我想知道是否有可能立即配置窗口来表示这种行为。我这样设置我的应用程序窗口:
WindowStyle="None" AllowsTransparency="True" Opacity="0.5" Background="Black" IsHitTestVisible="True" Focusable="True" IsTabStop="False"
如果我将背景设置为 x:Null 或透明,我可以单击应用程序。但是,那时应用程序根本不可见。
如果这不能直接实现,我想到了另一种解决方案:单击应用程序时,将其最小化,再执行一次鼠标单击,然后将应用程序最大化。我找到了一些全局鼠标单击的示例代码,如下所示:
MouseEventArgs e = new MouseEventArgs(Mouse.PrimaryDevice, 0);
e.RoutedEvent = Mouse.MouseEnterEvent;
youUIElement.RaiseEvent(e);
// Or
InputManager.Current.ProcessInput(e);
但是,我认为这在尝试双击时不起作用。
所以,总的愿望就一句话:半透明的 WPF 应用程序,总是在顶部,点击通过。键盘输入也应该通过。我设置了一个特殊的热键来恢复应用程序。
任何帮助/想法?