我正在使用Line类在WPF中的画布上绘制,即使我设置StrokeThickness = 1
,该行显示2像素宽 - 这几乎就像最小厚度是2.如何绘制真正1像素厚的线?
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);
Rusty.. 35
两件事情:
myLine.SnapsToDevicePixels = true; myLine.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased);
Matt Hamilto.. 5
尝试添加此:
myLine.SnapsToDevicePixels = true;
这将阻止WPF渲染"半像素"以对抗你的线.
两件事情:
myLine.SnapsToDevicePixels = true; myLine.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased);
尝试添加此:
myLine.SnapsToDevicePixels = true;
这将阻止WPF渲染"半像素"以对抗你的线.
除了建议之外,您的屏幕分辨率也可能超过96 DPI.无论您对WPF进行何种测量,默认情况下WPF始终假设96像素对应1英寸.
结果是,在192 DPI(96*2)的屏幕上,绘制厚度为1的线将绘制厚度为2像素的线.
如果是这种情况,则必须明确指定单位.