2017-12-07 16 views
0

하나의 표가 있습니다. 그 안에는 몇 가지 컨트롤이 있습니다.IsHitTestVisible을 false로 설정하면 wpf의 커서에 영향을줍니다.

예상 동작 :

마우스를 아래로, 내가 기다리고 특정 시간까지 다음 타격을 방지하기 위해 필요 내 커서를 변경해야 그리드 내부의 컨트롤 중 하나에서 발생하는 동안 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"나는 설정하고 현재 커서에서

false-IsHitTestVisible. 대기 커서가 이미지에 설정되어 있지 않습니다. 만약 의미가 이미지의 IsHitTestVisible 속성을 제거하면 대기 커서가 이미지에 적용됩니다. 아무도 이것에 나를 도울 수 있습니까?

답변

2

IsHitTestVisible 속성을 UIelement에 대해 false로 설정하면 더 이상 마우스 입력에 응답하지 않으며 마우스 관련 이벤트가 발생하지 않습니다. Bescuse에서 IsHitTestVisible을 false로 설정하면 마우스가 UIElement를 창에서 볼 수 없습니다. 그리드의 커서 속성이 작동하지 않습니다.

당신은 IsHitTestVisible보다는 특정 시간 동안 이벤트를 마우스를 방지하기 위해 의 IsEnabled에게 속성을 사용할 수 있습니다.

이 문제가 귀하의 문제를 해결할 것이라고 생각합니다.

+0

감사합니다. @Vinoth Kumar가 작동합니다. – user3610920