Smooth edges of non-rectangular form in .NET

前端 未结 2 1202
故里飘歌
故里飘歌 2021-01-18 03:31

I\'ve created a form with rounded corners using Form.Region. It works, but unfortunately the rounding appears rough. Are there any tricks for smoothing such shaped form corn

相关标签:
2条回答
  • 2021-01-18 03:55

    From what I've read online most people end up overriding the forms onpaint event and drawing the region there. This allows them to use GDI+ with antialiasing and make it look much cleaner.

    The examples I found:

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

    0 讨论(0)
  • 2021-01-18 04:05

    There is no good fix for this, regions cannot be anti-aliased. This is inevitable, anti-aliasing only works when you know the background colors so you can blend properly. That's not an option for windows, the background is by design unpredictable. If this is a splash screen then you can fake it by taking a screen shot of the background and drawing your fake window on top of it. Won't work for more than a few seconds.

    Best thing to do is to keep the corner radius small so it is not so noticeable. Also use a tool like SysInternals' ZoomIt and take a close look at the rounded corners of a program like Windows Media Player. Note the gray tones it uses to draw the border.

    0 讨论(0)
提交回复
热议问题