透明控件不捕获鼠标事件

时间:2014-12-28 20:46:18

标签: wpf

我有一个透明背景的窗口(不是null)。在该窗口内,我有一个用户控件,也有透明背景。

窗口接收鼠标事件,但用户控件不接收。

如果我将用户控件的背景从Transparent更改为#01000000,则用户控件将开始接收鼠标事件。但是,无论用户控件的背景如何,托管在用户控件中的控件(它们本身都是可见的)都不会接收鼠标事件。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

必须有处理事件的事情或者您遇到一些配置问题,因为它适用于我:http://share.linqpad.net/ijx3vb.linq。 (Get Linqpad free.

var t = new TextBlock() { Text = "test" };

var uc1 = new UserControl() { Background = new SolidColorBrush(Colors.Transparent) };
uc1.MouseEnter += (s, args) => { t.Text = "UC1"; };

var uc2 = new UserControl() { Background = new SolidColorBrush(Color.FromArgb(01, 00, 00, 00)) };
uc2.MouseEnter += (s, args) => { t.Text = "UC2"; };

var g = new Grid();
g.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto });
g.RowDefinitions.Add(new RowDefinition());
g.RowDefinitions.Add(new RowDefinition());
g.Children.Add(t);
g.Children.Add(uc1);
g.Children.Add(uc2);

Grid.SetRow(t, 0);
Grid.SetRow(uc1, 1);
Grid.SetRow(uc2, 2);

PanelManager.DisplayWpfElement(g);