wpf线条描边显示模糊

时间:2013-07-03 13:02:52

标签: wpf xaml line shape stroke

我在VS 2013预览中制作了一个示例代码,我在画布中画了一条线条,笔触颜色为白色,但是这条线显得很奇怪,就像更厚而不是白色(几乎是灰色)。 同样的样本我在VS 2010中尝试过,输出效果很好。

谁能告诉我发生了什么......?

<Canvas Width="200" Height="200" Background="Black">
    <Line X1="30" Y1="60" X2="90" Y2="60" Stroke="White" StrokeThickness="1"/>
    <Line X1="60" Y1="30" X2="60" Y2="90" Stroke="White" StrokeThickness="1"/>
</Canvas>

enter image description here

enter image description here

// EDIT 当我将线条粗细改为2或更大时,它会显示完全白色但厚度为2。

3 个答案:

答案 0 :(得分:1)

这是我们的老朋友Pixel Snapping。当WPF落在像素边界时,WPF将使用与ClearType类似的技术来绘制线条。这就是你所看到的。它可能在VS版本之间发生变化的原因是它们可以在不同的位置启动画布。

Dave Relyea has a cool Pixel Snapping Control帮助解决这些问题。

由于他是为Silverlight控制的,因此我会将UserControl更改为Decorator以用于WPF。只需将Content的所有引用更改为Child即可。这样您就不必担心其他人应用了ControlTemplate

答案 1 :(得分:0)

尝试将其向下移动0.5像素,这可能会有所帮助

答案 2 :(得分:0)

我在http://www.wpftutorial.net/DrawOnPhysicalDevicePixels.html

找到了一个很好的解释