我在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>
// EDIT 当我将线条粗细改为2或更大时,它会显示完全白色但厚度为2。
答案 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)