2013-07-03 63 views
0

我在VS 2013预览中做了一个示例代码,我在画布中用白色的笔触颜色做了一条线,但是线条显得很奇怪,就像更厚,而不是白色(几乎灰色)。 同样的例子我在VS 2010中试过了,它输出的很好。wpf线条显示模糊

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

<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

+0

不知道是否是同样的情况,但有时,图像可以显示有点模糊以及。解决这个问题的一种方法是使用窗口的RenderOptions.BitmapScalingMode属性,您可以在其中设置所需的质量。但是,再次,这是一个我已经遇到的模糊图像的问题,并不确定这个解决方案是否适用于刚描述的情况。 – Santux

回答

1

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

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

由于他的控制权是针对Silverlight制作的,因此WPF会将UserControl更改为Decorator。只需将所有参考文献Content更改为Child即可。这样你就不用担心其他人应用ControlTemplate

0

尝试将其移动0.5像素下,它可以帮助