我在Grid
的顶部放置了Window
,其中放置了Image
。据推测,Grid
会拖动窗口并显示MouseDown
个事件。
但是,每当我想向MouseDown
发送Child Image
事件时,它都无法正常工作,而是触发Grid's
。
private void toggleTbr_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
this.DragMove();
}
private void leapTcb_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
e.Handled = true;
//my code
}
如您所见,我尝试e.Handled = true;
但它没有任何改变,那么我想到尝试使用PreviewMouseLeftButtonDown
代替MouseLeftButtonDown
,但仍然是相同的。
我在这里做错了什么,或者如何阻止Grid
触发?
XAML:
<Grid x:Name="toggleTbr" MouseLeftButtonDown="toggleTbr_MouseLeftButtonDown">
<Grid x:Name="leapTcb_" Height="21" Width="26">
<Image x:Name="leapTcb" MouseLeftButtonDown="leapTcb_MouseLeftButtonDown">
<Image.Background>
<ImageBrush Source="Resources/leap_1.png"/>
</Image.Background>
</Image>
</Grid>
</Grid>
答案 0 :(得分:1)
您的代码运行正常,但如果不够,您可以尝试使用此代码:
IsHitTestVisible="True"
答案 1 :(得分:0)
Image元素没有Background属性,而是直接在image元素处设置Source属性。
<Image x:Name="leapTcb" Source="Resources/leap_1.png" MouseLeftButtonDown="leapTcb_MouseLeftButtonDown"/>
但是你运行了这个,但是在指定的更改下,它的行为与你想要的一样,至少在我的机器上。
答案 2 :(得分:0)
使用此功能正在我身边
<Grid x:Name="toggleTbr" MouseLeftButtonDown="toggleTbr_MouseLeftButtonDown" Background="Red">
<Grid x:Name="leapTcb_" Height="21" Width="26">
<Image x:Name="leapTcb" PreviewMouseLeftButtonDown="leapTcb_MouseLeftButtonDown">
<Image.Background>
<ImageBrush Source="Resources/leap_1.png"/>
</Image.Background>
</Image>
</Grid>
</Grid>