Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用GraphSharp从图形和鼠标事件更改节点布局_C#_Wpf_Graph Sharp - Fatal编程技术网

C# 使用GraphSharp从图形和鼠标事件更改节点布局

C# 使用GraphSharp从图形和鼠标事件更改节点布局,c#,wpf,graph-sharp,C#,Wpf,Graph Sharp,我正在使用GraphSharp构建一些图形。 我正在使用的代码用其名称构造顶点(请参见下图:) 我想做的是:“隐藏”节点的名称,并将顶点布局更改为圆形,而不是名称(类似以下内容:) 此外,我想在鼠标指针位于节点上方时显示节点的名称(来自第一个img的名称) 可能吗 这是我的密码: xaml: cs public partial class MainWindow : Window { public IBidirectionalGraph<object, IEdge<obj

我正在使用GraphSharp构建一些图形。 我正在使用的代码用其名称构造顶点(请参见下图:)

我想做的是:“隐藏”节点的名称,并将顶点布局更改为圆形,而不是名称(类似以下内容:)

此外,我想在鼠标指针位于节点上方时显示节点的名称(来自第一个img的名称)

可能吗

这是我的密码:

xaml:


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;
    }
}