作为图表的一部分,我正在绘制一些重叠的形状,每个形状都有Opacity=0.5
, 像这儿:
<Grid>
<Rectangle Fill="Blue" Opacity="0.5" MouseEnter="Rectangle_MouseEnter" />
<Rectangle Fill="Red" Opacity="0.5" />
</Grid>
private void Rectangle_MouseEnter(object sender, MouseEventArgs e)
{
MessageBox.Show("Entered");
}
当用户用鼠标输入形状时,应显示一些附加信息,但事件处理程序永远不会被调用。
有没有一种方法可以获取所有形状的 MouseEnter 事件,而不仅仅是最上面的形状?
在您的布局中,只有最上面的矩形才会引发 MouseEnter 事件。它与第一个矩形完全重叠。
尝试使用以下 eventHandler 代码:
private void Rectangle_MouseEnter(object sender, MouseEventArgs e)
{
if (sender != grid.Children[0])
{
var rect = (grid.Children[0] as Rectangle);
if (rect != null) rect.RaiseEvent(e);
}
else
{
MessageBox.Show("Entered.");
}
}
为此,您需要将两个矩形都订阅到 Rectangle_MouseEnter。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)