带有形状的画布 - 当我点击形状时,MouseUp事件会同时触发它们

时间:2013-07-13 19:17:21

标签: c# wpf events

我有像这样的椭圆画布:

<Canvas 
     Name="c1" 
     Background="White" 
     MouseUp="c1_MouseUp">
        <Ellipse 
              Width="138" 
              Height="143" 
              Fill="Chocolate" 
              MouseUp="Ellipse_MouseUp">
        </Ellipse>
</Canvas>

使用这样的事件处理程序:

    private void Ellipse_MouseUp(object sender, MouseButtonEventArgs e)
    {
        MessageBox.Show("Ellipse click");
    }

    private void c1_MouseUp(object sender, MouseButtonEventArgs e)
    {
        MessageBox.Show("Canvas click");
    }

单击椭圆时,两个事件都会触发。 我只想Ellipse_MouseUp开火。

是否有任何简单的方法可以让它按我的意愿运作?

1 个答案:

答案 0 :(得分:2)

标记要处理的人e.Handled = True; http://msdn.microsoft.com/en-us/library/system.windows.input.mousebuttoneventargs.aspx

以编辑为例,以下内容应该有效:

void Ellipse_MouseUp(object sender, MouseButtonEventArgs e)
{
    e.Handled = True;
    MessageBox.Show("Ellipse click");
}