2017-05-07 61 views
0

我绘制X条直线。相同的厚度等,但每四条线看起来明显不同 - 它更薄。WPF显示不同的线条

<Canvas Name="Canvas"> 
    <Line X1="100" Y1="100" X2="500" Y2="100" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="125" X2="500" Y2="125" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="150" X2="500" Y2="150" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="175" X2="500" Y2="175" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="200" X2="500" Y2="200" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="225" X2="500" Y2="225" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="250" X2="500" Y2="250" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="275" X2="500" Y2="275" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="300" X2="500" Y2="300" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 

</Canvas> 

渲染选项是别名还是未指定无关紧要。两个输出都显示不相同的行。 我甚至将Windows DPI设置为100%,它看起来仍然是一样的。

如何修复?任何人都经历过这个?

+0

我试过了你的代码,不能重现你的场景。你有没有试过在另一台机器上运行代码? – taquion

+0

不是,但@ megadan的答案解决了这个问题。 –

回答

1

尝试在您的Canvas上启用SnapsToDevicePixels

<Canvas Name="Canvas" SnapsToDevicePixels="True"> 

这将减少抗锯齿伪像,并确保线在像素边界上绘制。