2

角の丸い形を作る方法を教えてください (Winforms)。このコードは見つかりましたが、問題があります。シェイプをドラッグすると、描画がうまくいきません。また、内部の一部のコントロールには、ペイントにも問題があります。

  [DllImport("Gdi32.dll")]
    public static extern IntPtr CreateRoundRectRgn(int nLeftRect,
                                                   int nTopRect,
                                                   int nRightRect,
                                                   int nBottomRect,
                                                   int nWidthEllipse,
                                                   int nHeightEllipse);
    [DllImport("user32.dll")]
    public static extern int SetWindowRgn(IntPtr hWnd, IntPtr hRgn, bool bRedraw);

    /// <summary>
    /// radius
    /// </summary>
    public int Radius = 0;

    public AfyForm()
    {
        InitializeComponent();
        min_max_closeEvents();
        borderEvents();

    }

min_max_closeEvents(); ボーダーイベント(); - ボーダーペイントの方法

4

1 に答える 1

1

何か欲しいものがあれば、 に引っ越してspecial in GUIみてください。きっと気に入っていただけると思います。GUI で多くのカスタマイズを必要としない単純なアプリケーションの場合は、使用してもかまいませんが、いずれにせよ移行は遅かれ早かれ行うべきことです。ここに私が最近やったコードがあります。考え方は単純です。最初にofを作成し、次にこの領域をフォームのプロパティに割り当てます。ただし、境界線については、同様のものを作成して描画したり、塗りつぶしたりすると、最も外側のエッジと の間に少し隙間があるため、 は見栄えがよくありません。 WPFwinformsWPFRegionrounded rectangle shapeRegionDrawGraphicsPathbordergapGraphicsPath

デモのリンクはこちら

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力

于 2013-09-20T19:06:18.890 に答える