我有一个网格。在里面,我有一些控制。
预期行为:
当网格中的一个控件发生鼠标按下时,我需要将光标更改为等待并需要阻止下一次命中直到特定时间,所以在MouseDown
事件中设置光标等待IsHitTestVisible
图片为false。但这没有按预期工作。
代码块
<Grid x:Name="Grid1" Grid.Row="1" Grid.Column="1" Cursor="{Binding CurrentCursor}">
<Canvas x:Name="canvasElement" Width="{Binding ElementName=pupilGrid, Path=ActualWidth}" Height="{Binding ElementName=pupilGrid, Path=ActualHeight}" IsManipulationEnabled="True">
<Image x:Name="pupilSource" Width="{Binding ElementName=pupilGrid, Path=ActualWidth}" Height="{Binding ElementName=pupilGrid, Path=ActualHeight}" Source="{Binding ImageSource}" MouseDown="Source_MouseDown" IsHitTestVisible="{Binding CanHitAxis}"/>
<controls:Control x:Name="targetControl" Width="30" Height="30" ClipToBounds="False" Canvas.Left="0" Canvas.Top="0" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Canvas>
</Grid>
我得到的是什么:
在“Source_mousedown event
”中我将当前光标设置为等待,IsHitTestVisible
设置为false
。但等待光标未设置为图像。如果我在意义上移除了图像的IsHitTestVisible
属性,则等待光标也会应用于图像。任何人都可以帮助我吗?
答案 0 :(得分:2)
如果为UIelement将 IsHitTestVisible 属性设置为false,它将不再响应鼠标输入,也不会触发与鼠标相关的事件。 随着IsHitTestVisible被设置为false,鼠标无法在窗口中看到你的UIElement。因此,网格的光标属性不起作用。
您可以使用 IsEnabled 属性来阻止特定时间的鼠标停用事件,而不是 IsHitTestVisible 。
我认为这个会解决你的问题。