【问题标题】:Mouse Event Runs Multiple Times鼠标事件运行多次
【发布时间】:2015-08-16 06:55:10
【问题描述】:

它是我程序中网格内的一个矩形

<Grid x:Name="mainGrid" Background="Transparent" MouseLeftButtonDown="mainGrid_MouseLeftButtonDown">
    <Rectangle x:Name="rectangle" MouseEnter="rectangle_MouseEnter" Focusable="True" MouseLeftButtonDown="rectangle_MouseLeftButtonDown" MouseLeave="rectangle_MouseLeave" Fill="#FFF4F4F5" Margin="2" Stroke="Transparent"/>

</Grid>

鼠标左键按下事件:

private void rectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        Debug.WriteLine("mouse left button down on rectangle");
    }

    private void mainGrid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        Debug.WriteLine("mouse left button down on mainGrid");
    }

鼠标按下矩形时输出:

鼠标左键按下矩形

在 mainGrid 上鼠标左键向下

我只希望在矩形中单击时会出现矩形鼠标事件,而在矩形外单击时会出现网格鼠标事件

我该怎么做?

【问题讨论】:

    标签: c# wpf mouseevent


    【解决方案1】:

    MouseLeftButtonDownbubbling event,这意味着它将从原始元素上升到视觉树。您可以通过在rectangle_MouseLeftButtonDown 中将Handled 设置为true 来限制处理程序的执行

    private void rectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        e.Handled = true;
        Debug.WriteLine("mouse left button down on rectangle");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2023-03-14
      相关资源
      最近更新 更多