2011-11-20 23 views
1

我試圖使用DrawingContext.DrawGeometry得到一個矩形,它具有1個設備像素寬邊。我怎樣才能讓DrawGeometry在WPF中繪製設備像素線?

var geometry = (defined elsewhere from a Rect {0.0, 0.0, 8.0, 18.0}) 
var brush = new SolidColorBrush(Color.FromArgb(30, 0xff, 0xff, 0xff)); 

// Note: the pen is declared with a 1.0 thickness 
var pen = new Pen(new SolidColorBrush(Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF)), 1.0) 

drawingContext.DrawGeometry(brush, pen, geometry); 

我覈實,我建立的幾何形狀與Rect是整數,分數不點(人工驗證),以及Pen我畫幾何與廣1.0單位。

問題在於rect正在屏幕2上繪製設備像素寬。如何在準確的設備像素上繪製這個矩形?我預計在96dpi時,這將會達到1像素。

回答

1

您可以使用DrawingContext.PushGuidelineSet在可能的情況下強制渲染對齊。

有關詳細信息和示例代碼,請參閱this tutorial

+0

這有點尷尬,因爲現在我不得不看看組成幾何體的單個矩形,但它確實有效。好的提示,謝謝。 –