C# 我如何使我的标签点击,IshitteVisible不';t工作(WPF)

C# 我如何使我的标签点击,IshitteVisible不';t工作(WPF),c#,wpf,C#,Wpf,安迪的解决方案 我有下面的问题,我有一个透明的表单,在这里我有一堆标签来输入代码,在我玩的时候如何显示信息。我现在的问题是,当我在玩鼠标时移动鼠标时,鼠标光标会移到其中一个标签上,并将焦点移到窗体而不是游戏上。我试着将IshittetVisible设置为false,但仍然无法点击 我还尝试对所有标签应用IshittetVisible,但仍然不起作用。可能将背景设置为x:Null会起作用。例如,当我单击其中一个标签时,它只关注表单,否则光标不会显示。您可以尝试按此处所述设置WS_EX_透明标志

安迪的解决方案


我有下面的问题,我有一个透明的表单,在这里我有一堆标签来输入代码,在我玩的时候如何显示信息。我现在的问题是,当我在玩鼠标时移动鼠标时,鼠标光标会移到其中一个标签上,并将焦点移到窗体而不是游戏上。我试着将IshittetVisible设置为false,但仍然无法点击


我还尝试对所有标签应用IshittetVisible,但仍然不起作用。

可能将背景设置为x:Null会起作用。例如,当我单击其中一个标签时,它只关注表单,否则光标不会显示。您可以尝试按此处所述设置WS_EX_透明标志
protected override void OnSourceInitialized(EventArgs e)
{
  // Get this window's handle         
  IntPtr hwnd = new WindowInteropHelper(this).Handle;
  // Change the extended window style to include WS_EX_TRANSPARENT         
  int extendedStyle = GetWindowLong(hwnd, GWL_EXSTYLE);
  SetWindowLong(hwnd, GWL_EXSTYLE, extendedStyle | WS_EX_TRANSPARENT);  
  base.OnSourceInitialized(e);
}
public const int WS_EX_TRANSPARENT = 0x00000020;   public const int GWL_EXSTYLE = (-20);   

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

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