如何让DrawGeometry在WPF中绘制设备像素线?

时间:2011-11-20 19:14:43

标签: wpf drawingcontext

我正在尝试使用DrawingContext.DrawGeometry获取一个带有1个设备像素宽边的矩形。

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}单位宽。

问题是在屏幕2上绘制了矩形设备像素宽。如何在精确的设备像素上绘制此矩形?我期望在96dpi时,这将达到1像素。

1 个答案:

答案 0 :(得分:1)

您可以使用DrawingContext.PushGuidelineSet强制渲染尽可能对齐。

有关详细信息和示例代码,请参阅this tutorial