본문 바로가기
IT 실무/기타 프로그래밍

[Kinect C# WPF] KinectTileButton에 배경 이미지 넣기

by 아이들링 2013. 11. 3.

XAML 파일에서
<k:KinectTileButton Click="ClickEvent" Height="50" Width="50" Content="Button">  
    <k:KinectTileButton.Template>  
        <ControlTemplate>  
            <Image Source="BackgroudImages\icon.png"></Image>  
        </ControlTemplate>  
    </k:KinectTileButton.Template>  
</k:KinectTileButton>


과 같이 간편하게 지정 할 수 있다. 하지만 이렇게 할 경우 Button의 Hover, Click 속성이 다 무시된다. 테스트 해 보면 알겠지만 기존 KinectTileButton과 다르게 Hand Mouse가 올라갔을때 확대가 된다거나, 클릭을 했을 때 눌리는 애니메이션 효과가 없다.

이런 속성을 그대로 유지시키고 싶다면 XAML 코드가 아닌 cs코드 main() {... 안에 아래와 같은 코드를 넣어준다. (위 코드와 함께 사용하는 것이 아님. 아래 코드를 사용할 땐 <k:KinectTileButton.Template> 을 사용하지 않는다.)

 

BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = new Uri("img\\button1.png", UriKind.Absolute);
bi.EndInit();

buttonTraining.Background = new ImageBrush(bi);

 

이렇게 할 경우 Hand Mouse 이동에 따른 효과는 그대로 유지 된다. 이 방법을 쓰면 생기는 문제는 이쁘게 꾸며 놓은 이미지 버튼에 지저분한 Border가 생겨버린다는 것인데, 이때 XAML에서 버튼에 BorderThickness="0" 옵션을 주면 된다. 클릭을 했을때 또 생기는 Focus border도 마음에 안든다면 Focusable="False" 까지 넣어 주자.


위 소스들은 다 구글링해서 찾은 방법들이며.. 사실 KinectTileButton이 하나의 객체인 만큼 이를 컨트롤 할 방법은 무수히 많을 것이다. 더 찾아보자.

댓글0