【问题标题】:Creating a Round Edged form in C#在 C# 中创建圆边窗体
【发布时间】:2011-11-24 03:41:01
【问题描述】:
private static extern IntPtr CreateRoundRectRgn
(
    int nLeftRect, // x-coordinate of upper-left corner
    int nTopRect, // y-coordinate of upper-left corner
    int nRightRect, // x-coordinate of lower-right corner
    int nBottomRect, // y-coordinate of lower-right corner
    int nWidthEllipse, // height of ellipse
    int nHeightEllipse // width of ellipse
);

    public Form1()
    {
        InitializeComponent();
        Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0,Width-5, Height - 5, 20, 20));
    }

我从 Stack Overflow 获得了这段代码,但这不会产生清晰的边缘窗口,而且最小化、最大化按钮也无法正确显示。请更正代码。是否有任何库(dll)可以在 C# 中完成这项工作。

【问题讨论】:

  • 在表单上添加更多按钮并编写代码以关闭、最大化等。
  • 你看,表格的边缘在绘制时并不完美,这是主要问题。
  • 我同意 Tigra。这在 WPF 中很简单。

标签: c# .net winforms gdi+ rounded-corners


【解决方案1】:

你可以在这里http://bytes.com/topic/c-sharp/answers/256570-how-do-i-create-windows-forms-rounded-corners找到有趣的讨论。

或者,如果您没有相当大的表单,您可以使用一个简单的技巧,例如http://msdn.microsoft.com/en-us/beginner/cc963986.aspx

但是在 WindowsForms 中做好它真的很难。因此,如果您可以选择它,我强烈建议您改用 WPF。特别是我看到您担心渲染不完美。

【讨论】:

    猜你喜欢
    • 2020-10-24
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多