0

我在 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>

在此处输入图像描述

在此处输入图像描述

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

4

3 回答 3

1

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

Dave Relyea 有一个很酷的 Pixel Snapping Control来帮助解决这些问题。

由于他的控件是为 Silverlight 制作的,因此我将更UserControl改为Decorator用于 WPF 目的。只需将所有引用从 更改ContentChild。这样你就不用担心ControlTemplate被别人申请了。

于 2013-07-03T14:11:19.633 回答
0

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

于 2013-07-05T08:39:25.630 回答
0

我在http://www.wpftutorial.net/DrawOnPhysicalDevicePixels.html找到了一个很好的解释

于 2015-04-01T09:39:14.713 回答