【问题标题】:Smooth edges of non-rectangular form in .NET.NET 中非矩形形式的平滑边缘
【发布时间】:2011-06-11 07:03:30
【问题描述】:

我使用 Form.Region 创建了一个带有圆角的表单。它有效,但不幸的是,舍入看起来很粗糙。平滑这种形状的角有什么技巧吗?我知道许多应用程序都支持这一点,只是不确定如何在 .NET 中实现。

谢谢大家。

【问题讨论】:

  • 您正在寻找的技术通常称为抗锯齿。

标签: .net winforms forms drawing smoothing


【解决方案1】:

没有很好的解决方法,区域不能抗锯齿。这是不可避免的,抗锯齿仅在您知道背景颜色时才有效,因此您可以正确混合。这不是 Windows 的选项,背景是设计不可预测的。如果这是一个启动屏幕,那么您可以通过截取背景的屏幕截图并在其上绘制您的假窗口来伪造它。不会工作超过几秒钟。

最好的办法是保持拐角半径小,这样它就不会那么明显。还可以使用 SysInternals 的 ZoomIt 等工具,并仔细查看 Windows Media Player 等程序的圆角。请注意它用于绘制边框的灰色调。

【讨论】:

    【解决方案2】:

    根据我在网上阅读的内容,大多数人最终都会覆盖表单 onpaint 事件并在那里绘制区域。这使他们可以使用具有抗锯齿功能的 GDI+ 并使其看起来更清晰。

    我找到的例子:

    http://netcode.ru/dotnet/?lang=&katID=30&skatID=283&artID=7833 http://www.xtremevbtalk.com/showthread.php?t=288178

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-15
      • 1970-01-01
      • 2011-04-11
      • 2017-06-11
      • 1970-01-01
      相关资源
      最近更新 更多