본문 바로가기

wpf

Fastest Condensed Textblock Using GlyphRun Introduction WPF에서는 기본적으로 TextBlock나 FlowDocument 와 같은 텍스트 관련 컨트롤을 제공하고 있습니다. 이와 같은 컨트롤들은 텍스트와 관련된 일련의 과정을 개발자가 쉽게 사용할 수 있도록 고수준에서 제공되지만, 디테일한 텍스트조작을 지원하지 않습니다. TextBlock과 같은 고수준 컨트롤보다 좀더 디테일한 조작이 가능한 FormattedText를 제공하고 있지만, FormattedText는 WPF의 텍스트 기능 관점에서 텍스트를 그래픽 요소로 처리하기 때문에 DrawingContext의 DrawingText를 통해 텍스트를 렌더링 합니다. FormattedText에서는 텍스트의 Geometry를 생성할 수 있기 때문에 여러가지 효과(윤곽선, 모양등)를 적용하는데 용이.. 더보기
Set Binding Source Update Timing Using UpdateSourceTrigger Introduction 이번시간에는 Data Binding을 구현할 때 Source Update Timing을 지정하는 방법에 대해 소개합니다. 일반적인 경우 Source Update Timing을 지정하지 않아도 해당 객체의 기본적인 Timing Rule에 따라 자동으로 지정되기 때문에 신경쓰지 않아도 되지만 간혹 Binding Timing지정을 필요한 상황이 이 있습니다. 대표 적인 예로 TextBox를 이용한 Data Binding을 구현할 때 일어나는 상황을 이야기 할 수 있습니다. 위 코드와 같이 두개의 TextBox에 DataBinding을 구현 했을때의 실행을 시켜보면 아래 동영상과 같이 TextBox에서 Focus가 사라진 후 Binding Source가 Update되는 것을 확인 할 수 .. 더보기
Drawing Fixed Size Pattern Introduction UI를 개발하거나, 혹은 다른 이유로 WPF를 이용해 패턴을 그려야 하는 상황이 있습니다. 일반적인 방법으로는 패턴 이미지를 저장하여 패턴 이미지를 출력하거나, Brush의 Viewport 영역을 조절하여 패턴을 출력하는 방식을 사용합니다. 패턴이미지를 사용 할경우 예상되는 최대 크기로 패턴이미지를 저장하고 있어야 하기 때문에 불필요하게 많은 리소스를 차지 하게 되며, Brush의 Viewport 영역을 조절할 경우 해당 객체의 상대적인 크기에 비례하여 Viewport가 적용되기때문에 패턴의 크기가 고정적 이어야 할 경우 적합하지 않습니다. 이번시간에 소개할 내용은 Viewport 영역을 지정해 패턴을 그릴때 Viewport Unit을 사용해 패턴을 고정적인 크기로 사용하는 방법에.. 더보기
Skyblue Circle Button Template Introduction WPF에서 사용할 수 있는 원 모양 버튼을 구현한 Controltemplate 샘플입니다. ViewBox를 이용해 항상 동일한 비율의 모양을 유지하며, Normal, Over, Press에대한 상태를 지원합니다. 더보기
Visual To BitmapSource Using RenderTargetBitmap Introduction WPF Application을 개발하다보면 현재 화면에 출력되고 있는 Visual객체나 임의로 생성한 Visual 객체를 Image로 변환 해야하는 경우가 있습니다. 이번 강좌에서는 RenderTargetBitmap을 이용해 Visual 객체를 Image로 변환하는 방법에 대해 소개합니다. What is RenderTargetBitmap? RenderTargetBitmap은 WPF상의 Visual객체를 Bimap으로 변환 해주는 클래스로, 제공되는 Render메서드를 통해 Visual 객체를 Bitmap으로 변환 할 수 있습니다. Render메서드를 호출하게 되면 입력한 Visual의 Measure와 Arrange를 수행한 결과를 바탕으로 생성된 Bitmap영역에 Visual을 렌.. 더보기