본문 바로가기

Development

WPF ReverseBinding(RadioButton DataBinding) Introduction WPF를 이용해 MVVM패턴으로 개발할때, ViewModel에서 View에 있는 객체에 Binding을 해야 할경우, ViewModel에서 View에 있는 객체를 직접 Access해야 하므로, View와 ViewModel의 독립성이 떨어지게 됩니다. 이번시간에는 이러한 상황에서 MarkupExtension을 이용해 View에서 ViewModel의 독립성을 유지한체 ViewModel에서 View를 Binding할 수 있도록 하는 ReverseBinding을 구현 하는 방법에 대해 소개합니다. Create DemoView(Default Data Binding) ReverseBinding를 구현하기에 앞서 ReverseBinding을 테스트 하기 위한 상황을 만들기 위해 위와 같이 두개.. 더보기
Set LinerGradient Direction using Angle Introduction 이전 시간에서 이야기한 바와 같이 포토샵을 사용하는 디자이너와 협업하여 WPF프로젝트를 진행하다보면, 포토샵을 사용해 디자인을 하는 디자이너의 의도를 WPF의 기본 기능만을 활용해서 수용하기란 한계가 따릅니다. 이번시간에는 포토샵을 이용해 디자인을 한 디자이너가 Gradient을 편집할 때 사용하는 Angle속성을 WPF에서 사용하는 방법에 대해 소개합니다. What is the Gradient Angle? Linear Gradient에서의 Angle이란 Gradient의 방향을 의미 하며, Angle을 변경하게 되면, 원의 중심을 Gradient의 시작점으로 하고 원의 끝을 Gradient의 종료지점으로 하는 Gradation이 생성됩니다. 포토샵에서는 위 그림과 같이 간단하게 .. 더보기
MidPoint GradientStop For WPF Introduction 포토샵을 사용하는 디자이너와 협업하여 WPF프로젝트를 진행하다보면, 디자이너가 작업한 결과물들을 사용가능한 형태(XAML)로 변환하는 과정이 필요한데, 전문 디자인 툴인 포토샵의 기능들을 기본적으로 제공되는 WPF의 기능만으로 표현해 내는것은 한계가 따릅니다. 대표적인 예로 GradientBrush, Effect, Blend Mode등이 대표적인 예입니다. 이번시간에는 포토샵에서 Gradient를 편집할때 사용 할 수 있는 MidPoint GradientStop을 WPF에서 적용 할 수 있는 방법에 대해 생각해보고 구현하는 방법에 대해 소개합니다. What is the MidPoint GradientStop? MidPoint Gradient란, 시작 GradientStop에서 종료.. 더보기
Create Pixel Shader Based CustomBrush Introduction WPF Application을 개발하다보면 기본적으로 제공하는 Brush이외 다른 형식의 Brush가 필요한 상황이 있습니다. 예를들어 지난 포스팅(http://whatisthat.co.kr/169)에서 다루었던 AngleGradient가 대표적인 예라고 할 수 있겠습니다. 지난 포스팅에서는 MarkupExtension을 이용해 내부적으로 ImageBrush를 생성하여 Brush로 사용하는 방법에 대해 소개 했지만, 매번 대상의 크기가 변경될 때마다 새로운 이미지를 생성해주어야 하는 문제점 때문에 퍼포먼스 상의 이슈가 발생할 수 있습니다. 이번시간에는 MarkupExtension과 PixelShader를 이용해 Brush를 제작하는 방법에 대해 소개합니다. PixelShader를 .. 더보기
Get Type From COM Object(System.__ComObject) Introduction .Net Framework를 이용해 COM객체를 사용하다보면, Object 형식으로 객체가 리턴되는 경우가 있는데 이 객체를 활용하기 위해서는 적절한 Type으로 캐스팅이 필요한 상황이 됩니다. 다행히 Object객체가 어떤 Type의 객체인지 알고 있는 상황이라면 간단하게 캐스팅문법을 이용해 캐스팅 해서 사용할 수 있지만, Type을 모르고 있다면 문제가 발생합니다. 일반적인 .Net Framework환경에서 였다면 간단히 GetType메서드를 통해 해당 객체의 Type을 확인 할 수 있지만, COM 객체의 경우 GetType메서드를 호출하게 되면 System.__ComObject 를 리턴하기 때문에 확인 할 수가 없습니다. Microsoft KB문서(http://support... 더보기