0

このチュートリアルを読んでい ます http://chalaki.com/how-to-program-msagl-glee-to-create-hierarchical-graph-layouts/519/

コードサンプルを使用。

ここに画像の説明を入力

属性を動的にしようとしています (後でデータベースから属性をロードできるようにしたい)

私が試してみました

string dColor = "Red"; 
string dShape = "Diamond";

Microsoft.Glee.Drawing.Node n2 = graph.FindNode(strNode2);
n2.Attr.Fillcolor = Microsoft.Glee.Drawing.Color.dColor;
n2.Attr.Shape = Microsoft.Glee.Drawing.Shape.dShape;

しかし、それは機能していません。どうすればこれを行うことができますか、これを動的に行うことについて読むことさえできますか?

[回答] これが最善の方法かどうかはわかりませんが、うまくいきます。

--私がした色について

using mColor = Microsoft.Msagl.Drawing.Color;
using sColor = System.Drawing.Color;

sColor c = sColor.FromName("Red");
graph.FindNode("test1").Attr.FillColor = new mColor(c.A,c.R,c.G,c.B);

--私がした形のために

 graph.FindNode("test1").Attr.Shape = (Shape)
 (int)Enum.Parse(typeof(Shape),"Diamond");

ここで、「test1」、「diamond」、および「Red」の値はデータベースから取得されます。

4

1 に答える 1

1

AColorは ではありませんstring

Microsoft.Glee.Drawing.Node n2 = graph.FindNode(strNode2);
var someColor = System.Drawing.Color.Red;
n2.Attr.Fillcolor = someColor;

色をデータベースに保存する場合は、Color の静的メソッドのいずれかを使用できます。

string dColor = "Red"; 
n2.Attr.Fillcolor = Color.FromName(dColor);

名前の付いた色に固執しない場合は、Color.FromArgb(int);

編集

System.Drawing here のものとは異なる Color クラスを使用しているようです。MSDN フォーラムでを見つけました。

string color = "Red";
var cvtColor = new ColorConverter();
var sysColor = cvtColor.ConvertFromString(color);
n2.Attr.Fillcolor = new Microsoft.Msagl.Drawing.Color(sysColor.R, sysColor.B, sysColor.G);

GitHub にいくつかのサンプル コードがあります。

n2.Attr.Fillcolor = Microsoft.Msagl.Drawing.Color.Magenta;
于 2017-06-04T12:20:50.030 に答える