标签: graph-sharp

WPF中使用图形#的图形不是作为链条绘制的

我正在使用带有图形#库的WPF,我正在尝试将图形绘制为线性链,因此我定义了一些顶点,并将边连接为

new Edge<object>(vertices[i], vertices[i+1])
Run Code Online (Sandbox Code Playgroud)

但问题是结果图未按预期绘制,如下所示:

1 - > 2 - > 3 - > 1-> 4

换句话说,顶点3穿过顶点1到达顶点4.

这是绘图方法的代码

private void CreateGraphToVisualize()
{
    var g = new BidirectionalGraph<object, IEdge<object>>();

    // add the vertices to the graph
    string[] vertices = new string[5];
    for (int i = 0; i < 5; i++)
    {
        vertices[i] = i.ToString();
        g.AddVertex(vertices[i]);
    }

    // add 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[4]));

    GraphToVisualize = g;
}
Run Code Online (Sandbox Code Playgroud)

这是与图形相关的xaml代码的一部分#

<DockPanel Grid.Row="2" …
Run Code Online (Sandbox Code Playgroud)

c# wpf graph graph-sharp

32
推荐指数
1
解决办法
1750
查看次数

在Graphsharp中向边添加自定义样式

我正在使用GraphSharp框架,它只有很少的文档(http://graphsharp.codeplex.com/),我正在尝试更改某些边缘的颜色.

实际上是这样的(使这个边缘变红).

g.AddEdge(new Edge<object>("A","B"), Color.Red);
Run Code Online (Sandbox Code Playgroud)

有人为此有任何代码片段吗?

c# wpf xaml graph-sharp

7
推荐指数
1
解决办法
4180
查看次数

绑定时未实现错误的方法或操作

我目前正在开发一个Visual Studio插件(VSPackage),它最终应该能够可视化调用关系.为了表示它们,我想使用管理图形的Graph#库(避免重叠边缘等).不幸的是,我在运行时在我的XAML中收到以下错误消息:

XamlParseException:未实现方法或操作.

<graph:CallRelationGraphLayout Graph="{Binding RelationGraph}"/>标签上会弹出错误.

<UserControl x:Class="Biocoder.InteractiveExploration.View.ExplorationControl"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:graphsharp="clr-namespace:GraphSharp.Controls;assembly=GraphSharp.Controls"
         xmlns:zoom="clr-namespace:WPFExtensions.Controls;assembly=WPFExtensions"
         xmlns:graph="clr-namespace:Biocoder.InteractiveExploration.Graph"
         xmlns:viewmodels="clr-namespace:Biocoder.InteractiveExploration.ViewModel"
         xmlns:controls="clr-namespace:Biocoder.InteractiveExploration.Controls" mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">



<UserControl.DataContext>
    <viewmodels:ExplorationToolViewModel/>
</UserControl.DataContext>

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>

    <zoom:ZoomControl Grid.Row="1"
                      Zoom="0.2"
                      ZoomBoxOpacity="0.5"
                      Background="Yellow">

        <graph:CallRelationGraphLayout Graph="{Binding RelationGraph}"/>

    </zoom:ZoomControl>

</Grid>

</UserControl>
Run Code Online (Sandbox Code Playgroud)

我还创建了自己的顶点,边和图布局类.我的图最终应该表示方法(顶点)之间的调用关系(边).

MethodVertex.cs

public class MethodVertex
{
    public string ID { get; private set; }
    public bool IsMale { get; private set; }

    public MethodVertex(string id, bool isMale)
    {
        ID = id;
        IsMale = isMale;
    }

    public …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf visual-studio-2010 vspackage graph-sharp

7
推荐指数
1
解决办法
4319
查看次数

使用Graph#的图形布局

这是我的窗口代码:

public partial class MainWindow
{
    private MainWindowViewModel _mainWindowViewModel;

    public MainWindow()
    {
        InitializeComponent();
        _mainWindowViewModel = new MainWindowViewModel();
        DataContext = _mainWindowViewModel;
    }
}
Run Code Online (Sandbox Code Playgroud)

和视图模型代码:

class MainWindowViewModel : ViewModelBase
{
    private BidirectionalGraph<string, IEdge<string>> _graph;

    public BidirectionalGraph<string, IEdge<string>> Graph
    {
        get { return _graph; }
        set
        {
            _graph = value;
            NotifyPropertyChanged("Graph");
        }
    }

    public MainWindowViewModel()
    {
        Graph = new BidirectionalGraph<string, IEdge<string>>();

        // test data
        const string vertex1 = "123";
        const string vertex2 = "456";
        const string vertex3 = "ddd";

        Graph.AddVertex(vertex1);
        Graph.AddVertex(vertex2);
        Graph.AddVertex(vertex3);
        Graph.AddEdge(new …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf graph graph-sharp

5
推荐指数
1
解决办法
1812
查看次数

GraphSharp 树布局从左到右

我尝试使用 CodePlex 的 GraphSharp 创建一棵树。

我查看了示例应用程序并尝试“重新设计”该示例。

问题是,如果我尝试以编程方式设置 LayoutAlgorithmType = "Tree" ,我会得到一个 TargetInvocationException ... 这很神秘,因为在示例中它有效。

我的问题是:如何创建具有树布局和从左到右方向的图形。

提前致谢 :)

我的代码:

public partial class MainWindow : Window
{
    private IBidirectionalGraph<object, IEdge<object>> _graphToVisualize;

    public IBidirectionalGraph<object, IEdge<object>> GraphToVisualize
    {
        get { return _graphToVisualize; }
    }

    public MainWindow()
    {
        CreateGraphToVisualize();

        InitializeComponent();
    }

    private void CreateGraphToVisualize()
    {
        var g = new BidirectionalGraph<object, IEdge<object>>();



        string[] vs = new string[5];
        for (int i = 0; i < 5; i++)
        {
            vs[i] = i.ToString();
            g.AddVertex(vs[i]);
        }

        //add some edges
        g.AddEdge(new …
Run Code Online (Sandbox Code Playgroud)

wpf tree-left-right graph-sharp

3
推荐指数
1
解决办法
2809
查看次数