728x90
반응형
728x170
<StackPanel
Margin="7"
Width="150"
Orientation="Horizontal">
<Rectangle
Width="45.5"
Height="1"
Margin="10"
Fill="Red"
SnapsToDevicePixels="False" />
<Rectangle
Margin="10"
Width="45.5"
Height="1"
Fill="Red"
SnapsToDevicePixels="True" />
</StackPanel>
※ 설명
- WPF 그래픽 시스템이 해상도와 장치 독립적 단위로 인한 불규칙한 렌더링 문제를 해결하기 위한 것이다.
- WPF에서 시스템 DPI 설정에 맞게 자동으로 크기가 조정되는 문제 때문에 보통 가장 자리가 흐려지거나 반투명하게 표시되는 현상이 발생한다.
- 이것은 장치에서 사용하는 픽셀이 실제 사용하고 있는 픽셀 위치와 어긋나 발생하는 문제이다.
- 장치에서 사용하는 픽셀 단위와 WPF에서 사용하는 픽셀 단위가 정확하게 매칭된 경우에는 끝이 매끄럽게 떨어지지만 매칭되지 않은 경우 일부분이 원래 결과와 일치하지 않는다. 이 문제를 해결하기 위해서 픽셀 스냅(Pixel Snap) 기능을 사용해 객체의 가장 자리를 장치 픽셀에 맞추어 고정시키는 기능을 제공한다. 픽셀 스냅을 사용하면 객체에 작은 단위의 Offset을 적용하여 객체의 크기를 장치 픽셀에 맞추거나 일부분을 렌더링 시점에서 제거하여 해결하는 방법이다.
- WPF에서 픽셀 스냅을 제공하기 위해 SnapsToDevicePixels 속성을 설정한다.
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] 프로그램 로딩 시간 대처하기 (0) | 2014.02.21 |
---|---|
[C#/WPF] Binding 클래스 : 바인딩 설정하기 (0) | 2014.02.21 |
[C#/WPF] RenderTargetBitmap 클래스 : Render 메소드를 사용해 FrameworkElement 객체에서 비트맵 구하기 (0) | 2014.02.21 |
[C#/WPF] BitmapSource 클래스 : TIFF 파일 저장하기 (0) | 2014.02.21 |
[C#/WPF] BitmapSource 클래스 : PNG 파일 저장하기 (0) | 2014.02.21 |
[C#/WPF] GridViewColumn 클래스 : 바인딩 설정하기 (0) | 2014.02.21 |
[C#/WPF] Window 클래스 : 윈도우 객체 핸들 구하기 (0) | 2014.02.21 |
[C#/WPF] Window 클래스 : 시스템 메뉴 숨기기 (0) | 2014.02.21 |
[C#/WPF] Dispatcher 클래스 : Invoke 메소드를 사용해 크로스 스레드(Cross Thread) 처리하기 (0) | 2014.02.21 |
[C#/WPF] ASCII ART 문자열 구하기 (0) | 2014.02.21 |
댓글을 달아 주세요