통합검색
· 마을서비스란?  · 포럼마을  · 일반마을  · 테마마을  · 마을랭킹  · 활동왕
· 덱스퍼트란?  · TECBOX   · PRSBOX   · 이용안내  
· DEXT제품군  · 솔루션베이  · S/W & ESD 컴포넌트
· 프로그램베이
· LiveSeminar  · LiveConference
WPF & Silverlight 포럼마을입니다.
  마을등급 WPF & Silverlight   이 마을은 포럼마을 입니다이 마을은 자유가입제 마을 입니다 마을소개 페이지로 이동 전입신청
마을촌장촌장 서학수 주민 728 since 2008-07-17
우리마을 공지사항
질문&답변
강좌&팁
자유게시판
자료실
앨범
[마을 게시판]
WPF 강좌
랑데브 게시판
칼럼 게시판
개발자 고충상담
Dev Talk
자유토론방
벼룩시장
재나미 우스개
구인/프로젝트 정보
사람인 채용 게시판
  고객지원 게시판
마이 데브피아
 나의 e-Money 내역
 활동왕 My Page
 스크랩한 게시글보기
 쪽지관리
 주소록관리

 WPF 강좌
 WPF Application Pixel Snap 2008-07-27 오전 4:22:58
 kdw234  kdw234님께 메시지 보내기kdw234님을 내 주소록에 추가합니다.kdw234님의 개인게시판 가기 번호: 37432  / 읽음:10,589

이번 시간에서는 WPF의 그래픽 시스템이 해상도와 장치의 영향을 받지 않기 위해 사용하는 독립적으로 단위로 인한 불규칙한 Rendering을 해결하기 위한 문제를 다룹니다. WPF에서는 시스템의 DPI설정에 맞게 자동으로 크기가 조정되기 때문에 보통 가장자리가 흐려지거나 반투명하게 표시되는 현상이 발생하는데, 이것은 장치에서 사용하는 픽셀이 실제 사용하고 있는 픽셀의 위치가 어긋나 발생하는 문제라 할 수 있습니다. 이해를 돕기 위해 그림으로 표현 하자면 아래와 같습니다.

               
               
               
             
           
               
               
               

Pixel이 정확하게 매칭된 경우

               
               
               
                   
             
               
               
               

Pixel이 매칭되지 않은 경우

위의 표가 장치에서 사용하는 픽셀 단위라고 하고 빨간색 네모가 실제 WPF에서 사용하는 픽셀 단위라고 할 때 정확하게 매칭된 경우에는 끝이 매끄럽게 떨어지지만 매칭되지 않은 경우 일부분이 원래 결과와 일치하지 않는 다는 것을 알 수 있습니다. 이 문제를 해결하기 위해서는 Pixel Snap이라는 기능을 통해 객체의 가장자리를 장치 픽셀에 맞추어 고정시킬 수 있는 기능을 제공합니다. PixelSnap을 사용하면 객체에 작은 단위의 Offset을 적용하여 객체의 크기를 장치 Pixel에 맞추거나 일부분을 Rendering 시점에서 제거 하여 해결하는 방법입니다.

WPF에서는 PixelSnap을 제공하기 위해 SnapsToDevicePixels라는 Property를 제공합니다.

<StackPanel Width="150" Margin="7" Orientation="Horizontal">

<Rectangle SnapsToDevicePixels="False" Width="45.5" Margin="10" Height="1" Fill="Red"/>

<Rectangle SnapsToDevicePixels="True" Width="45.5" Margin="10" Height="1" Fill="Red"/>

</StackPanel>

위 코드를 실행시키시고 창을 좌우로 조금씩 움직여 보시면 아래 그림과 같이 매칭이 되지 않은 경우와 매칭이 된 경우를 비교 해보실 수 있습니다.

 
사용자 삽입 이미지

코멘트쓰기
  좋음   놀람   궁금   화남   슬픔   최고   침묵   시무룩   부끄럼   난감
* 코멘트는 500자 이내(띄어쓰기 포함)로 적어주세요.
목록 보기   지금 보고 계시는 글을 회원님의 my Mblog >> 스크랩에 넣어두고 다음에 바로 보실 수 있습니다.  
회사소개  |   개인정보취급방침  |  제휴문의  |   광고문의  |   E-Mail 무단수집거부  |   고객지원  |   이용안내  |   세금계산서
사업자등록번호 안내: 220-81-90008 / 통신판매업신고번호 제 2017-서울구로-0055호 / 대표: 홍영준, 서민호
08390, 서울시 구로구 디지털로32길 30, 1211호 / TEL. 02_6719_6200 / FAX. 02-6499-1910
Copyright ⓒ (주) 데브피아. All rights reserved.