当前位置:  开发笔记 > 编程语言 > 正文

如何在WPF中在1像素厚的画布上绘制一条线

如何解决《如何在WPF中在1像素厚的画布上绘制一条线》经验,为你挑选了3个好方法。

我正在使用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渲染"半像素"以对抗你的线.



1> Rusty..:

两件事情:

myLine.SnapsToDevicePixels = true;
myLine.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased);



2> Matt Hamilto..:

尝试添加此:

myLine.SnapsToDevicePixels = true;

这将阻止WPF渲染"半像素"以对抗你的线.



3> nullDev..:

除了建议之外,您的屏幕分辨率也可能超过96 DPI.无论您对WPF进行何种测量,默认情况下WPF始终假设96像素对应1英寸.

结果是,在192 DPI(96*2)的屏幕上,绘制厚度为1的线将绘制厚度为2像素的线.

如果是这种情况,则必须明确指定单位.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有