【问题标题】:White lines around round border at high zoom level高缩放级别的圆形边框周围的白线
【发布时间】:2009-11-05 01:28:44
【问题描述】:

如果我在 xamlpadx (500%) 中放大到足够大,我会看到边框内部周围的线条。在我的应用程序中,这甚至发生在某些控件的正常缩放级别。

为什么这更重要,我能做些什么呢?

这是我的 XAML 代码:

<Border Background="#000000" BorderBrush="#000000" BorderThickness="4" CornerRadius="4">    
   <StackPanel>               
   </StackPanel>
</Border>

我删除了所有内容,直到我确定有缺陷的显示中没有填充/边距/边框。

编辑 2: 我不应该这么快就接受答案。我注意到在相同的情况下,错误与以前一样,尽管我使用了 SnapsToDevicePixels 并将控件的内部颜色设置为与边框相同的颜色。我希望微软能尽快解决这个问题!

【问题讨论】:

标签: .net wpf xaml graphics border


【解决方案1】:

我有同样的行为,我认为这是 WPF 渲染引擎的错误。 通过将SnapsToDevicePixels="True" 添加到边框,您可以获得更好的结果:白线仅保留在圆角中。

【讨论】:

    【解决方案2】:

    这确实是 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>
    

    【讨论】:

      【解决方案3】:

      这种行为是 WPF 工作方式固有的。这不是一个错误。请注意,您的坐标都是双精度数,而不是整数:这些不是精确单位。如果你放大到足够大,你会看到错误。

      以下是大约一年前的记忆,但我认为是对的:

      如果您要手动绘制到 wpf 渲染上下文,则可以使用“指南”系统来排列。这就是为股票 UI 样式绘制按钮和事物的方式。看看参考源(http://blogs.msdn.com/rscc/default.aspx),你可以自己看看。一般来说,关于这个主题还有一个很好的 msdn 页面:http://msdn.microsoft.com/en-us/library/aa970908.aspx

      【讨论】:

      • 但是即使控件的背景也是黑色的,白线又是从哪里来的呢?
      • 我不知道。很好奇。
      猜你喜欢
      • 2015-02-14
      • 2023-03-22
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多