亮個圖:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISM9AnYldnJwAzN9c3Pn5GcuQ0MlMWbidXN55EMNpWTx0ERNlXRU1ENBRVT4FkaNZ3ZE5UMrpWT2VEVNdXS6xkeWJjWoFzVhZHMyIma1k3YulzRilWNykVdJRUT310VhdXO5xkNNh0YwIFSh9CXt92YuM3YltWas5iclN3Ztl2Lc9CX6MHc0RHaiojIsJye.png)
代碼簡介:
這個是繪制節點相關的類,如果大家想要繪制新的形狀,可以添加AbsNodeBase的子類,同時實作接口IDrawing
這個是繪制線條相關的類,如果大家要繪制新的線條,可以添加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屬性,因為他已經是老大了,沒有别的老大讓他連了。
後記:
本來是幫同僚做的,後來想發到這裡,也許能對有類似需求的園友有所幫助,代碼超級簡單,而且非常之少,大家看代碼吧。如果有誰看不懂代碼給我留言,看不懂代碼說明我的代碼寫的不好。
下載下傳解決方案