C# WPF UI覆盖禁用点击框并允许鼠标点击?

C# WPF UI覆盖禁用点击框并允许鼠标点击?,c#,wpf,C#,Wpf,如果我想在顶部绘制一些UI元素ex TEXT标签作为windows的常规覆盖,但我不想让它们与鼠标交互,因此仍然可以单击下面呈现的任何按钮/应用程序,我该如何做“ishitestvisible=“False”仍然会阻止鼠标与底层应用程序的连接 WindowStyle="None" ShowInTaskbar="False" AllowsTransparency="True" Background="Transparent" 示例在WPF应用程序的不透明部分上时,无法单击下面的windows窗口

如果我想在顶部绘制一些UI元素ex TEXT标签作为windows的常规覆盖,但我不想让它们与鼠标交互,因此仍然可以单击下面呈现的任何按钮/应用程序,我该如何做“ishitestvisible=“False”仍然会阻止鼠标与底层应用程序的连接

WindowStyle="None"
ShowInTaskbar="False"
AllowsTransparency="True"
Background="Transparent"
示例在WPF应用程序的不透明部分上时,无法单击下面的windows窗口


我找到了一个解决方案,它比我想象的要复杂得多,而且甚至不必设置ishitestvisible=“False”

代码

using System;
using System.Windows;
using System.Runtime.InteropServices;
using System.Windows.Interop;

namespace clickThruUI
{

    public static class WindowsServices
    {
        const int WS_EX_TRANSPARENT = 0x00000020;
        const int GWL_EXSTYLE = (-20);

        [DllImport("user32.dll")]
        static extern int GetWindowLong(IntPtr hwnd, int index);

        [DllImport("user32.dll")]
        static extern int SetWindowLong(IntPtr hwnd, int index, int newStyle);

        public static void SetWindowExTransparent(IntPtr hwnd)
        {
            var extendedStyle = GetWindowLong(hwnd, GWL_EXSTYLE);
            SetWindowLong(hwnd, GWL_EXSTYLE, extendedStyle | WS_EX_TRANSPARENT);
        }
    }

    public partial class MainWindow : Window
    {
        protected override void OnSourceInitialized(EventArgs e)
        {
            base.OnSourceInitialized(e);
            var hwnd = new WindowInteropHelper(this).Handle;
            WindowsServices.SetWindowExTransparent(hwnd);
        }

        public MainWindow()
        {

            InitializeComponent();
        }
    }
}

@FCin作为一项测试,我创建了一个新的VS项目,只添加了一个大文本标签,并将其全部设置为透明和“IsHitTestVisible=“False”,因此不应该是捕获单击事件的任何内容,问题是它只在文本所在的位置阻止鼠标。@YvetteColomb现在已经添加了一个图像。@YvetteColomb好吧,WPF的任何部分都不可单击,它的简单之处在于windows UI应用程序在屏幕上绘制一些文本/位图,基本上类似于“gdi+绘制到屏幕”。在您的视图中将
e.Handled
设置为False。单击事件有什么区别吗?@Vinicius不确定“View.Clicked event”是什么意思我没有添加任何单击事件。