Простой серебряный вопрос о событиях мыши - PullRequest
1 голос
/ 07 января 2010

Простое приложение Silverlight:

<Grid x:Name="LayoutRoot">
    <Canvas x:Name="C1" MouseLeftButtonDown="C1_MouseLeftButtonDown" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <Canvas x:Name="C2" MouseLeftButtonDown="C2_MouseLeftButtonDown" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
            <Rectangle x:Name="R1" Fill="AliceBlue" Height="40" Width="60"/>
        </Canvas>
    </Canvas>
</Grid>

Почему обработчики событий мыши Canvas вызываются только когда я щелкаю элемент управления Rectangle, а не в пустом Canvas?
Спасибо.

1 Ответ

4 голосов
/ 07 января 2010

Вам нужно дать фону кисть холста, чтобы дать поверхности холста, на которой можно обнаружить мышь.

<Grid x:Name="LayoutRoot"> 
    <Canvas x:Name="C1" Background="White" MouseLeftButtonDown="C1_MouseLeftButtonDown" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
        <Canvas x:Name="C2" MouseLeftButtonDown="C2_MouseLeftButtonDown" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
            <Rectangle x:Name="R1" Fill="AliceBlue" Height="40" Width="60"/> 
        </Canvas> 
    </Canvas> 
</Grid>
...