如果我在xamlpadx(500%)中放大得足够大,我会看到边框内侧的线条。在我的应用程序中,这甚至发生在某些控件的正常缩放级别。
为什么这样,更重要的是,我能做些什么呢?
这是我的XAML代码:
<Border Background="#000000" BorderBrush="#000000" BorderThickness="4" CornerRadius="4">
<StackPanel>
</StackPanel>
</Border>
我删除了所有内容,直到我确定有缺陷的显示中没有填充/边距/边框。
编辑2: 我不应该这么快就接受答案。我注意到在相同的情况下,错误与以前一样,尽管我使用了SnapsToDevicePixels并将控件的内部颜色设置为与边框相同的颜色。我希望微软能尽快解决这个问题!
答案 0 :(得分:5)
我有相同的行为,我认为这是WPF渲染引擎的错误。
通过向边框添加SnapsToDevicePixels="True"
可以获得更好的效果:白线仅保留在圆角中。
答案 1 :(得分:1)
这确实是WPF中的一个错误。但是,根据您的具体情况,您可以使用两种解决方法:
<Border Background="#000000" BorderThickness="0" CornerRadius="4">
<StackPanel Margin="4">
</StackPanel>
</Border>
或者
<Border Background="#000000" BorderThickness="0" CornerRadius="4">
<Border Background="#000000" BorderThickness="0" CornerRadius="4" Margin="4">
<StackPanel>
</StackPanel>
</Border>
</Border>
答案 2 :(得分:1)
此行为是WPF工作方式所固有的。这不是一个错误。请注意,您的坐标都是双精度数,而不是整数:这些不是精确单位。如果你放大得足够,你会看到错误。
以下是大约一年前的记忆,但我认为是对的:
如果您手动绘制wpf渲染上下文,可以使用“指南”系统来排列。这是为库存UI样式绘制按钮和事物的方式。看一下参考源(http://blogs.msdn.com/rscc/default.aspx),你可以亲自看看。关于这个主题,一般还有一个很好的msdn页面:http://msdn.microsoft.com/en-us/library/aa970908.aspx