본문 바로가기

Silverlight

브러시와 마우스 이벤트


Null 브러시와 투명색

실버라이트의 개체들은 브러시(Canvas의 Background 또는 Shape들의 Fill) 속성을 XAML에서 명시적으로 선언하지 않으면 즉, 브러시가 Null일 경우 해당 영역을 투명하게 표현하죠. 다른 방법으로는 SolidColorBrush 등의 색상을 설정하는 브러시의 알파값을 0으로 설정하여도 역시 투명하게 표현된다는 사실은 잘 알고 있을거에요.

하지만 개체를 투명하게 표현하는 이 두가지 방법은 분명히 차이점이 있어요. 바로 Null 브러시는 마우스 이벤트를 받을 수 없다는 점이죠.

 예를 들어, 다음과 같은 XAML의 Canvas가 있다고 생각해보죠.

<Canvas x:Name="testCanvas" Width="100" Height="100"></Canvas>

이 Canvas에 마우스가 움직일 때 이벤트를 받고 싶다면 testCavnas.MouseMove 이벤트에 핸들러를 붙이겠죠.
하지만 이 이벤트 핸들러는 절대로 호출되지 않아요. 바로 Canvas가 어떠한 값으로도 '칠해지지' 않았기 때문이죠.

만약 이 Canvas에서 마우스 관련 이벤트를 받고 싶지만 여전히 투명하게 칠하고 싶다면 다음과 같은 XAML 코드를 사용해야 해요.

<Canvas x:Name="testCanvas" Width="100" Height="100" Background="#00000000"></Canvas>


참 신기해요... ^^

[출처] 실버라이트 네이버 카페