728x90
이미지, 혹은 엘리먼트를 확대/축소, 회전 시키는 것은 Transform을 통해 쉽게 구현할 수 있다.
WPF에는 여러 개의 Transform 들을 제공하는데, 확대/축소의 경우 ScaleTransform, 회전의 경우 RotateTransform 을 사용하여 구현한다.
간단하게, 이미지를 확대 축소, 회전 시키는 프로젝트를 만들어보자.
1. 확대 축소 시 전체 이미지를 볼 수 있도록 ScrollViewer 를 하나 만들고,
2. 이미지를 하나 삽입한다.
3. 확대, 축소, 회전을 위해 버튼을 3개 만들어보자
자 그럼 준비는 됐으니 Transform을 적용해보자.
우리가 Transform을 적용하고자 하는 엘리먼트는 <Image> 이므로, 하위에 LayoutTransform 에
TransformGroup 을 하나 만들고, 그 하위에 ScaleTransform 과 RotateTransform 을 각각 생성한다. C#측에서 변경해야 하기 때문에 각각의 트랜스폼에 적당히 이름을 달아주도록 한다.
해당 부분 코드는 아래와 같다.
자, 그럼 모든 준비는 끝났다. 버튼을 눌렀을 때 확대/축소의 경우엔 ScaleTransform 의 ScaleX, ScaleY 속성을, 회전의 경우엔 RotateTransform 의 Angle 속성을 변경하면 된다.
함수는 간단하게 다음과 같이 작성하면 된다.
여기까지 작성하고 실행해보면 아래와 같이 제대로 동작함을 알 수 있다.
'Dev > WPF' 카테고리의 다른 글
[WPF] Routed Event (라우팅 이벤트) (0) | 2012.09.11 |
---|---|
[WPF] LayoutTransform vs RenderTransform (0) | 2012.08.30 |
[WPF] Custom ContentControl (컨텐트컨트롤 커스텀화) (0) | 2012.08.07 |
[WPF] Textbox Watermark - Passwordbox ( 패스워드박스에 힌트 넣기) (0) | 2012.08.01 |