2010-05-21 3 views
17

저는 Line 클래스를 사용하여 WPF에서 캔버스를 그리며, StrokeThickness = 1을 설정했지만 선이 2 픽셀 넓이로 표시됩니다. 최소 두께가 2 인 것처럼 정말 1 픽셀 두께의 선을 어떻게 그리나요? 이 추가1 픽셀 두께의 WPF에서 캔버스에 선을 그리는 방법

Line myLine = new Line(); 

myLine.Stroke = System.Windows.Media.Brushes.Black; 

myLine.X1 = 100; 
myLine.X2 = 140; // 150 too far 
myLine.Y1 = 200; 
myLine.Y2 = 200; 

myLine.StrokeThickness = 1; 

graphSurface.Children.Add(myLine); 

답변

32

두 가지 :

myLine.SnapsToDevicePixels = true; 
myLine.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased); 
+2

MAGIC! 감사합니다. – xarzu

3

시도 :

myLine.SnapsToDevicePixels = true; 

당신의 라인 안티 알리아싱을 위해 "반 픽셀을"렌더링에서 WPF를 중지합니다.

4

제외하고 제안 된 내용, 또한 화면 해상도 이상 96 DPI이라고 할 수 있습니다에서. WPF에 대한 측정 값이 무엇이든 기본적으로 WPF는 항상 96 픽셀이 1 인치에 해당한다고 가정합니다.

결과적으로 192 DPI (96 * 2)의 화면에서 두께 1의 선을 그리면 2 픽셀의 두께로 선이 그려집니다.

이 경우이 단위를 명시 적으로 지정해야합니다.

관련 문제