Создание круглой кромочной формы в C # - PullRequest
0 голосов
/ 24 сентября 2011
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));
    }

Я получил этот код от переполнения стека, но это не дает четкого окна и, кроме того, кнопки сворачивания и максимизации не отображаются должным образом.Пожалуйста, исправьте код.Есть ли какая-нибудь библиотека (dll) для работы в C #.

1 Ответ

2 голосов
/ 24 сентября 2011

Вы можете найти интересное обсуждение здесь 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. Особенно я вижу твою озабоченность по поводу не идеального рендеринга.

...