8

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

多谢你们。

4

2 回答 2

9

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

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

于 2011-01-18T20:22:16.727 回答
7

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

我发现的例子:

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

于 2011-01-18T18:57:01.537 回答