天天看點

做了一個簡易winform拓撲圖控件

亮個圖:

做了一個簡易winform拓撲圖控件

代碼簡介:

做了一個簡易winform拓撲圖控件

這個是繪制節點相關的類,如果大家想要繪制新的形狀,可以添加AbsNodeBase的子類,同時實作接口IDrawing

做了一個簡易winform拓撲圖控件

這個是繪制線條相關的類,如果大家要繪制新的線條,可以添加AbsLineBase的子類,同時實作接口IDrawing

關鍵代碼:

其實沒有什麼關鍵代碼的,就是繪制的時候需要個顔色漸變效果,這是繪制圓形節點的代碼:

public void Draw(System.Drawing.Graphics graphics)
        {
            RectangleF rect = new RectangleF(this.Location.X,this.Location.Y,this.Size.Width,this.Size.Height);
            LinearGradientBrush brush = new LinearGradientBrush(rect,this.Color,Color.Black,45);
            graphics.FillEllipse(brush, rect);

            StringFormat format = new StringFormat();
            format.Alignment = StringAlignment.Center;
            format.LineAlignment = StringAlignment.Center;
            graphics.DrawString(this.Text, new Font("宋體", this.TextSize), new SolidBrush(this.TextColor), new RectangleF(this.Location.X, this.Location.Y, this.Size.Width, this.Size.Height), format);
        }
      

  這樣就有漸變效果了,看起來立體一些,:-D。

如何使用:

  解決方案裡有執行個體項目的,:-D。主要工作是建立一個樹形結構,其中一個節點(Node類)包括節點本身和其連接配接父節點的連線(Line類),顔色大小等都可以設定,對,Root節點可以不用設定Line屬性,因為他已經是老大了,沒有别的老大讓他連了。

後記:

  本來是幫同僚做的,後來想發到這裡,也許能對有類似需求的園友有所幫助,代碼超級簡單,而且非常之少,大家看代碼吧。如果有誰看不懂代碼給我留言,看不懂代碼說明我的代碼寫的不好。

  下載下傳解決方案