[英]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");
}
我只是改變了網格的顏色,讓我更容易看到。 我希望它有幫助..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.