programing

WPF 4.0에서 SnapsToDevicePixels를 언제 사용해야합니까?

javaba 2021. 1. 14. 23:03
반응형

WPF 4.0에서 SnapsToDevicePixels를 언제 사용해야합니까?


누구든지 SnapsToDevicePixelsWPF 4.0에서 사용할 때 지침을 제안 할 수 있습니까 ?

문제가있는 경우에만 가끔씩 만 사용해야합니까? 앱 전체에서 자유롭게 특정 컨트롤에만 사용해야합니까?


픽셀 정렬 시기대한 Spencer와 Martin의 좋은 답변 입니다.

받는 사람으로서 어떻게 : 나는 또한 한 것을 지적하는 것 WPF 4.0에서 시도 속성을 사용하는 UseLayoutRounding대신 SnapsToDevicePixels.

UseLayoutRoundingSilverlight (Silverlight SnapsToDevicePixels에서는 사용할 수 없음) 와 호환되는 작업을 수행 하고 Microsoft는 설명서 에서 UseLayoutRoundingover SnapsToDevicePixels사용하도록 권장합니다 .

둘의 차이점은 무엇입니까? 한 가지 큰 차이점은 UseLayoutRounding레이아웃 단계에서 SnapsToDevicePixels발생하고 렌더링 단계에서 발생한다는 것입니다. 이것은 UseLayoutRounding아마도 더 성능이 좋은 방법 이라고 추측하게 만듭니다 (하지만 이것을 확인하지는 않았습니다).

모든 말은 여전히를 사용해야 할 이유가 있습니다 SnapsToDevicePixels. 실제로 MSDN 문서는 하나를 가리 킵니다. 또 하나 추가하겠습니다 SnapsToDevicePixels. 정확한 제어를위한 지침을 사용할 수있는 것입니다.

다음은이 문제에 대한 몇 가지 리소스입니다 (예 : 이미지, 텍스트 및 시각적 개체를 사용한 픽셀 스냅 및 선명도)

헤. 내 대답이 당신이 요구 한 것보다 조금 더 크다는 것을 알고 있습니다. 그러나이 개념 (즉, 해상도 독립성 및 그로 인한 문제와 해결 방법)은 WPF로 작업 할 때 종종 좌절감을 줄 수 있습니다 . 최소한 새로운 WPF 4.0 속성 인 UseLayoutRounding.

최신 정보

나는 이것을 반복해서 보았 기 때문에 추가해야합니다 ... 때로는 그렇지 않을 SnapsToDevicePixels때 작동합니다 UseLayoutRounding. 왜 이런 일이 발생하는지 손가락을 짚고 싶지만 먼저 UseLayoutRounding을 시도하고 작동하지 않으면 주저하지 말고 SnapsToDevicePixels.

그 선이 너무 날카로 워서자를 수 있습니다!


픽셀 배치에 의미가있는 컨트롤 또는 영역에서 사용해야합니다. 그리기 응용 프로그램의 캔버스와 관련된 컨트롤이 한 가지 예입니다. 조각난 드라이브의지도를 본 적이 있습니까? 이것은 또 다른 예일 수 있습니다.

제가 생각할 수있는 한 가지 예외는 어떤 종류의 구분선을 사용할 때입니다. 대부분의 사람들은 경계선이 단단하다고 생각합니다. 이 설정이 꺼져 있으면 흐릿하고 산만 해 보일 수 있습니다.

기본적으로 흐린 가장자리 = 나쁘면 켜십시오.


한 가지 경우는 이미지 또는 비디오를 표시하는 경우입니다. 장치 픽셀 (예 : 비디오 화면의 픽셀)에 스냅하지 않으면 일부 알고리즘 (보간, 앤티 앨리어싱)을 사용하여 화면 픽셀 "사이"에 이미지 픽셀을 배치하고 표시되는 내용이 보이지 않습니다. 원본 이미지만큼 좋습니다. 이미지의 선명도가 떨어집니다.


Borders에 매우 유용하다는 것을 알았습니다. 여기에 추가 정보가 있습니다 .

<Style TargetType="Border" >
        <Setter Property="SnapsToDevicePixels" Value="True" />
</Style>

참조 URL : https://stackoverflow.com/questions/2399731/when-should-i-use-snapstodevicepixels-in-wpf-4-0

반응형