C# 将IshittesVisible设置为false会影响wpf中的光标

C# 将IshittesVisible设置为false会影响wpf中的光标,c#,wpf,cursor,C#,Wpf,Cursor,我有一个网格。在里面我有一些控制 预期行为: 当网格中的一个控件发生鼠标下移时,我需要将光标更改为等待,并需要在特定时间前防止下一次点击,因此在MouseDown事件中,我将光标设置为等待,并将图像的ishitestvisible设置为false。但这并不像预期的那样有效 代码块 我得到的是: 在“Source\u mousedown事件”中,我将当前光标设置为等待,并将ishitestvisible设置为false。但等待光标未设置为图像。如果我删除了图像的ishitestvisible属

我有一个网格。在里面我有一些控制

预期行为:

当网格中的一个控件发生鼠标下移时,我需要将光标更改为等待,并需要在特定时间前防止下一次点击,因此在
MouseDown
事件中,我将光标设置为等待,并将图像的
ishitestvisible
设置为false。但这并不像预期的那样有效

代码块


我得到的是:


在“
Source\u mousedown事件
”中,我将当前光标设置为等待,并将
ishitestvisible
设置为
false
。但等待光标未设置为图像。如果我删除了图像的
ishitestvisible
属性,则等待光标也会应用于图像。有人能帮我吗?

如果将UIelement的IshitteVisible属性设置为false,它将不再响应鼠标输入,也不会触发与鼠标相关的事件。 由于将IshittesVisible设置为false,鼠标无法在窗口中看到UIElement。因此网格的游标属性不起作用

您可以使用IsEnabled属性在特定时间防止鼠标按下事件,而不是IsitTestVisible


我认为这将解决您的问题。

如果将UIelement的IshitteVisible属性设置为false,它将不再响应鼠标输入,也不会触发与鼠标相关的事件。 由于将IshittesVisible设置为false,鼠标无法在窗口中看到UIElement。因此网格的游标属性不起作用

您可以使用IsEnabled属性在特定时间防止鼠标按下事件,而不是IsitTestVisible

我想这个能解决你的问题

<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>