我有一个透明背景的窗口(不是null
)。在该窗口内,我有一个用户控件,也有透明背景。
窗口接收鼠标事件,但用户控件不接收。
如果我将用户控件的背景从Transparent
更改为#01000000
,则用户控件将开始接收鼠标事件。但是,无论用户控件的背景如何,托管在用户控件中的控件(它们本身都是可见的)都不会接收鼠标事件。
有什么想法吗?
答案 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);