1

我正在尝试使用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.0单位宽。

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

4

1 回答 1

1

您可以使用DrawingContext.PushGuidelineSet在可能的情况下强制渲染对齐。

有关详细信息和示例代码,请参阅本教程

于 2011-11-20T19:19:30.293 回答