.net 如何使透明的WPF窗口位于所有其他窗口之上,但不影响用户输入?
我正在尝试开发一个Windows应用程序,允许人们“在屏幕上画画” 我正在开发: .NET 3.5 C#/WPF 我有一个WPF窗口,它承载一个InkCanvas,两者都有透明的背景 窗口XAML属性:.net 如何使透明的WPF窗口位于所有其他窗口之上,但不影响用户输入?,.net,wpf,xaml,event-handling,inkcanvas,.net,Wpf,Xaml,Event Handling,Inkcanvas,我正在尝试开发一个Windows应用程序,允许人们“在屏幕上画画” 我正在开发: .NET 3.5 C#/WPF 我有一个WPF窗口,它承载一个InkCanvas,两者都有透明的背景 窗口XAML属性: ShowInTaskbar="True" ResizeMode="NoResize" Background="Transparent" WindowStyle="None" AllowsTransparency="True" Topmost="True" Background="#11FFFF
ShowInTaskbar="True" ResizeMode="NoResize" Background="Transparent"
WindowStyle="None" AllowsTransparency="True" Topmost="True"
Background="#11FFFFFF"
InkCanvas属性:
ShowInTaskbar="True" ResizeMode="NoResize" Background="Transparent"
WindowStyle="None" AllowsTransparency="True" Topmost="True"
Background="#11FFFFFF"
我需要以下事件的事件处理程序:
-在窗口中的任意位置单击鼠标右键
-新闻逃逸
预期结果:
-WPF窗口保持在所有其他窗口的顶部,但不再处于活动状态,不再接受输入
-WPF窗口可以不再被关注。来自用户的所有输入都应该转到他们当前的焦点窗口,忽略带有inkcanvas的wpf窗口,inkcanvas位于所有内容之上
基本用法示例:
应用程序的用户正在玩游戏。他们停下来在wpf窗口/inkcanvas中绘制一些箭头。他们最后按了退出键。wpf窗口保持在顶部,用户绘制的形状打开,用户的输入返回到他们打开/聚焦的任何窗口
到目前为止,我已经尝试过:
MouseRightButtonUp ::
mywindow.isenabled = false
我试过:
mywindow.IsInputMethodEnabled = false
到目前为止,wpf窗口还没有工作,它仍然开始抓取用户输入。我需要将此窗口设置为显示,但不激活它。。即使在它被“使用”了一段时间之后
提前感谢您的建议 您可以截取WndProc(使用HwndSource的AddHook,如图所示),截取并返回HTTRANSPARENT。但这只会让它传递到该线程中的其他窗口。另一个选项可能是设置WS_EX_透明扩展样式位。有关示例,请参见 谢谢,我们今天将尝试这个方向,并将向您介绍最新情况。@AlexanderPerls已经有一段时间了,您找到解决方案了吗?