在.NET中平滑非矩形表单的边缘

9
我使用Form.Region创建了一个带圆角的表单。它能够工作,但不幸的是圆角看起来有些粗糙。是否有任何技巧可以平滑这种形状的表单角?我知道许多应用程序支持这个功能,只是不确定如何在.NET中实现。
谢谢大家。

你正在寻找的技术通常称为反锯齿。 - enriquein
@enriquein https://web.archive.org/web/20120620223040/http://www.xtremevbtalk.com/showthread.php?t=288178 - Peter
2个回答

10

针对这个问题,没有好的解决方案,区域无法反锯齿化。这是不可避免的,抗锯齿化只有在你知道背景颜色的情况下才能正确混合。而对于Windows来说,这并不可行,因为其背景是设计为不可预测的。如果这是一个启动屏幕,那么您可以通过截取背景的屏幕截图,并在其上面绘制假窗口来模拟它。但仅适用于几秒钟。

最好的方法是保持角半径较小,这样就不会太明显。此外,使用像SysInternals的ZoomIt这样的工具,仔细观察像Windows Media Player这样的程序的圆角。请注意它用于绘制边框的灰色色调。


8

第二个链接已失效。 - Gray Programmerz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接