我嘗試使用CodePlex中的GraphSharp創建樹。GraphSharp Tree Layout LeftToRight
我查看了示例應用程序,並嘗試「重新設計」該示例。
問題是,如果我嘗試以編程方式設置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 Edge<object>(vs[0], vs[1]));
g.AddEdge(new Edge<object>(vs[0], vs[2]));
g.AddEdge(new Edge<object>(vs[2], vs[3]));
g.AddEdge(new Edge<object>(vs[1], vs[4]));
g.AddEdge(new Edge<object>(vs[3], vs[4]));
layout.LayoutMode = LayoutMode.Automatic;
layout.LayoutAlgorithmType = "Tree";
_graphToVisualize = g;
}
}
XAML:
<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:graphsharp="clr-namespace:GraphSharp.Controls;assembly=GraphSharp.Controls"
xmlns:GraphSharp_Controls="clr-namespace:GraphSharp.Controls;assembly=GraphSharp.Controls"
xmlns:graph="clr-namespace:GraphSharp.Controls;assembly=GraphSharp.Controls"
xmlns:Controls="clr-namespace:WPFExtensions.Controls;assembly=WPFExtensions"
Title="MainWindow" Height="350" Width="525"
x:Name="root">
<Grid>
<Controls:ZoomControl>
<graph:GraphLayout x:Name="layout" />
</Controls:ZoomControl>
</Grid>
</Window>