C# 使用GraphSharp从图形和鼠标事件更改节点布局
我正在使用GraphSharp构建一些图形。 我正在使用的代码用其名称构造顶点(请参见下图:) 我想做的是:“隐藏”节点的名称,并将顶点布局更改为圆形,而不是名称(类似以下内容:) 此外,我想在鼠标指针位于节点上方时显示节点的名称(来自第一个img的名称) 可能吗 这是我的密码: xaml:C# 使用GraphSharp从图形和鼠标事件更改节点布局,c#,wpf,graph-sharp,C#,Wpf,Graph Sharp,我正在使用GraphSharp构建一些图形。 我正在使用的代码用其名称构造顶点(请参见下图:) 我想做的是:“隐藏”节点的名称,并将顶点布局更改为圆形,而不是名称(类似以下内容:) 此外,我想在鼠标指针位于节点上方时显示节点的名称(来自第一个img的名称) 可能吗 这是我的密码: xaml: cs public partial class MainWindow : Window { public IBidirectionalGraph<object, IEdge<obj
cs
public partial class MainWindow : Window
{
public IBidirectionalGraph<object, IEdge<object>> _graphToVisualize;
//public IUndirectedGraph<object,IEdge<object>> _graphToVisualize;
public IBidirectionalGraph<object, IEdge<object>> GraphToVisualize
//public IUndirectedGraph<object, IEdge<object>> GraphToVisualize
{
get { return _graphToVisualize; }
}
public MainWindow(int[,] matrix, string[] names)
{
CreateGraphToVisualize(matrix, names);
InitializeComponent();
}
public void CreateGraphToVisualize(int[,] matrix, string[] names)
{
var g = new BidirectionalGraph<object, IEdge<object>>();
//var g=new UndirectedGraph<object, IEdge<object>>();
//add the vertices do the graph
string[] vertices = new string[matrix.GetLength(0)];
for (int i = 0; i < matrix.GetLength(0); i++)
{
vertices[i] = names[i];
g.AddVertex(vertices[i]);
}
/*add some edges to the graph
g.AddEdge(new Edge<object>(vertices[0], vertices[1]));
g.AddEdge(new Edge<object>(vertices[1], vertices[2]));
g.AddEdge(new Edge<object>(vertices[2], vertices[3]));
g.AddEdge(new Edge<object>(vertices[3], vertices[1]));
g.AddEdge(new Edge<object>(vertices[1], vertices[4]));*/
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
if (i == j) break;
if(matrix[i,j]==1) g.AddEdge(new Edge<object>(vertices[i], vertices[j]));
}
}
_graphToVisualize = g;
}
}
公共部分类主窗口:窗口
{
公共方向图;
//公共方向图;
公共方向图图形可视化
//公共IUndirectedGraph图形可视化
{
获取{return}
}
公共主窗口(int[,]矩阵,字符串[]名称)
{
CreateGraphToVisualize(矩阵、名称);
初始化组件();
}
public void CreateGraphToVisualize(int[,]矩阵,字符串[]名称)
{
var g=新的双向图();
//var g=新的无向图();
//将顶点添加到图形中
字符串[]顶点=新字符串[matrix.GetLength(0)];
对于(int i=0;i
多谢各位
public partial class MainWindow : Window
{
public IBidirectionalGraph<object, IEdge<object>> _graphToVisualize;
//public IUndirectedGraph<object,IEdge<object>> _graphToVisualize;
public IBidirectionalGraph<object, IEdge<object>> GraphToVisualize
//public IUndirectedGraph<object, IEdge<object>> GraphToVisualize
{
get { return _graphToVisualize; }
}
public MainWindow(int[,] matrix, string[] names)
{
CreateGraphToVisualize(matrix, names);
InitializeComponent();
}
public void CreateGraphToVisualize(int[,] matrix, string[] names)
{
var g = new BidirectionalGraph<object, IEdge<object>>();
//var g=new UndirectedGraph<object, IEdge<object>>();
//add the vertices do the graph
string[] vertices = new string[matrix.GetLength(0)];
for (int i = 0; i < matrix.GetLength(0); i++)
{
vertices[i] = names[i];
g.AddVertex(vertices[i]);
}
/*add some edges to the graph
g.AddEdge(new Edge<object>(vertices[0], vertices[1]));
g.AddEdge(new Edge<object>(vertices[1], vertices[2]));
g.AddEdge(new Edge<object>(vertices[2], vertices[3]));
g.AddEdge(new Edge<object>(vertices[3], vertices[1]));
g.AddEdge(new Edge<object>(vertices[1], vertices[4]));*/
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
if (i == j) break;
if(matrix[i,j]==1) g.AddEdge(new Edge<object>(vertices[i], vertices[j]));
}
}
_graphToVisualize = g;
}
}