xar*_*rzu 19 c# wpf line visual-studio-2010
我正在使用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);
Run Code Online (Sandbox Code Playgroud)
Rus*_*sty 35
两件事情:
myLine.SnapsToDevicePixels = true;
myLine.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased);
Run Code Online (Sandbox Code Playgroud)
尝试添加此:
myLine.SnapsToDevicePixels = true;
Run Code Online (Sandbox Code Playgroud)
这将阻止WPF渲染"半像素"以对抗你的线.
除了建议之外,您的屏幕分辨率也可能超过96 DPI.无论您对WPF进行何种测量,默认情况下WPF始终假设96像素对应1英寸.
结果是,在192 DPI(96*2)的屏幕上,绘制厚度为1的线将绘制厚度为2像素的线.
如果是这种情况,则必须明确指定单位.
| 归档时间: |
|
| 查看次数: |
31797 次 |
| 最近记录: |