簡體   English   中英

C# WPF - Grid MouseUp 由於以前的 Grid 沒有觸發

[英]C# WPF - Grid MouseUp not firing due to previous Grid

我的內部網格的 MouseUp 事件似乎沒有觸發,因為來自周圍網格的 MouseDown 事件。 我有什么辦法可以防止這種情況?

<Grid HorizontalAlignment="Left" Height="50" VerticalAlignment="Top" Width="525" MouseDown="Grid_MouseDown_1" Background="#00000000">
        <Grid HorizontalAlignment="Left" Height="20" Margin="495,10,0,0" VerticalAlignment="Top" Width="20" Background="#FF000000" MouseEnter="gridBtn_MouseEnter" MouseLeave="gridBtn_MouseLeave" MouseUp="gridBtn"/>             
</Grid>

您永遠不會收到第二個網格的MouseDown ,因此第二個網格沒有MouseUp 為了使MouseDown事件傳播到子級,您可能需要處理PreviewMouseDown以在該事件上進行第一次破解。 然后,您將執行某種命中測試。

無論如何,您的處理程序未被調用的原因可能是由於e.Handled = true

例如:

private void Grid_MouseDown_1(object sender, MouseButtonEventArgs e)
{
    // Uncomment to allow the MouseUp event for the second grid.
    e.Handled = true;
}

我測試了以下內容,它可以正常工作。

    private void gridBtn(object sender, MouseButtonEventArgs e)
    {
        Debug.WriteLine("MouseUp inner grid");
    }

    private void Grid_MouseDown_1(object sender, MouseButtonEventArgs e)
    {
        Debug.WriteLine("MouseDown outer grid");
    }

    private void gridBtn_MouseEnter(object sender, MouseEventArgs e)
    {
        Debug.WriteLine("MouseEnter inner grid");
    }

    private void gridBtn_MouseLeave(object sender, MouseEventArgs e)
    {
        Debug.WriteLine("MouseLeave inner grid");
    }

MouseDown 和 Mouseup

我只是改變了網格的顏色,讓我更容易看到。 我希望它有幫助..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM