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

如何让DrawGeometry在WPF中沿设备像素线绘制?,wpf,drawingcontext,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 = n

我正在尝试使用
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
,并且我正在用
1.0
单位宽度绘制几何体的
Pen

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

您可以在可能的情况下使用来强制渲染对齐

有关详细信息和示例代码,请参见。

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


有关详细信息和示例代码,请参见。

这有点尴尬,因为现在我必须查看组成几何体的各个矩形,但它确实有效。很好的提示,谢谢。这有点尴尬,因为现在我必须查看组成几何体的单个矩形,但它确实有效。好提示,谢谢。