カーブエディタ作成 外観の作成

初めに

今回はひとまず機能実装より先に外観の制作をします。 見た目よくなったほうがモチベ上がるからね。

前回の記事 bravememo.hatenablog.com

完成図

これの作成方法を解説していきます。 まあ基本的にツールバーからポチポチ配置していく作業だからそんなに難しくはないはずです。

f:id:Brave345:20191206161957p:plain

最大化 サイズ変更

FormプロパティのFixedDialogをFixedDialogにすることでサイズ変更をさせないようにすることができます。 f:id:Brave345:20191206162549p:plain

FormプロパティのMaximizeBoxをfalseにすれば最大化アイコンが灰色になります。 f:id:Brave345:20191206162651p:plain

メニューバーのファイルの所

MenuStriptをFormにいれて入力できる場所でファイルと打ち込むだけ f:id:Brave345:20191206162851p:plain

グラフ部分

まずこの黒い部分ですがPictureBoxで作成しています。 PictureBoxはFormに適当なサイズ、位置で配置します。 そのPictureBoxをPictureBoxのPaintイベントで黒で塗りつぶし、その後に直線や曲線の描画をしてします。 細かい色の指定をしないでいいならBackColorで色を指定する方法でいいです。 以下参考コードです。 曲線の表示は以前のと少し違いDrawPathで描画しています。

PictureBox Paintイベント

    private void TestPaint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            //画面を黒で塗りつぶす
            g.Clear(Color.FromArgb(20, 230, 230, 230));
            path.Reset();
            //中心の線の描画
            g.DrawLine(m_standartpoint.pen, m_standartpoint.startPoint, m_standartpoint.endPoint);

            //曲線の描画
            path.AddBeziers(Points);
            path.AddBeziers(Points2);
            g.DrawPath(m_pen, m_path);

           //点の描画
            for (int i = 0; i < Points.Length; i++)
            {
                e.Graphics.FillRectangle(brush, Points[i].X - cpSize / 2, Points[i].Y - cpSize / 2, cpSize, cpSize);
            }
            for (int i = 0; i < Points2.Length; i++)
            {
                e.Graphics.FillRectangle(brush, Points2[i].X - cpSize / 2, Points2[i].Y - cpSize / 2, cpSize, cpSize);
            }
        }

あとは少し見やすくするためにBorderStyleをFixed3Dにしてます。 f:id:Brave345:20191206163502p:plain

点の設定項目

まず表示されいる"制御点"や"X"の文字についてですがLabelを配置してプロパティのTextを変更さ文字列に変更すればできます。 f:id:Brave345:20191206163552p:plain

数値入力はNumericUpDownを配置するだけです。

追加ボタン

先ほどのLabelみたいにButtonを配置して、プロパティのTextを"追加"に変更するだけ

f:id:Brave345:20191206163814p:plain

終わりに

とりあえず、今の外観をベースに制作していきます。 変更したくなる所が出てきたら、その都度変更すればいいかなと思います。

bravememo.hatenablog.com