Description: This article includes two very different basic assemblies and a couple of test assemblies for WPF. The first basic assembly is GraphLayout which implements the Reingold-Tilford algorithm, described here, to determine the placement of nodes in a tree structure. This tree is structured as a top down tree with the root at the top and the leaves at the bottom. This algorithm is entirely independent of any actual drawing of those nodes and so can be used for any purpose where such positioning is required. It includes options for vertical justification for nodes, collapsing of nodes, distance between sibling nodes and distance between non-sibling nodes. This assembly is not WPF specific and could easily be used to produce a GDI+ tree drawer (though I haven t included any here). It also includes a list of endpoints for lines which can be drawn as connectors between nodes. Currently, these lines are simply straight lines from the bottom center of the parent node to the top center of the child
To Search:
File list (Check if you may need any files):
SilverTreeContainer\GraphLayout
...................\...........\DPoint.cs
...................\...........\GraphLayout.csproj
...................\...........\GraphLayout.csproj.user
...................\...........\ITreeNode.cs
...................\...........\LayeredTreeDraw.cs
...................\...........\Properties
...................\...........\..........\AssemblyInfo.cs
...................\...........\TreeConnection.cs
...................\...........\TreeNodeGroup.cs
...................\SilverTreeContainer.sln
...................\SilverTreeContainer
...................\...................\Properties
...................\...................\..........\AssemblyInfo.cs
...................\...................\SilverTreeContainer.cs
...................\...................\SilverTreeContainer.csproj
...................\...................\SilverTreeContainer.csproj.user
...................\...................\TreeNode.cs
...................\SilverTreeTest
...................\..............\App.xaml
...................\..............\App.xaml.cs
...................\..............\Page.xaml
...................\..............\Page.xaml.cs
...................\..............\Properties
...................\..............\..........\AppManifest.xml
...................\..............\..........\AssemblyInfo.cs
...................\..............\SilverTreeTest.csproj
...................\..............\SilverTreeTest.csproj.user
TreeContainer\GraphLayout
.............\...........\GraphLayout.sln
.............\...........\GraphLayout.suo
.............\...........\GraphLayout
.............\...........\...........\DPoint.cs
.............\...........\...........\GraphLayout.csproj
.............\...........\...........\ITreeNode.cs
.............\...........\...........\LayeredTreeDraw.cs
.............\...........\...........\Properties
.............\...........\...........\..........\AssemblyInfo.cs
.............\...........\...........\TreeConnection.cs
.............\...........\...........\TreeNodeGroup.cs
.............\TreeContainer.sln
.............\TreeContainer.sln.cache
.............\TreeContainer.suo
.............\TreeContainer
.............\.............\Properties
.............\.............\..........\AssemblyInfo.cs
.............\.............\..........\Resources.Designer.cs
.............\.............\..........\Resources.resx
.............\.............\..........\Settings.Designer.cs
.............\.............\..........\Settings.settings
.............\.............\Themes
.............\.............\......\Generic.xaml
.............\.............\TreeContainer.cs
.............\.............\TreeContainer.csproj
.............\.............\TreeNode.cs
.............\TreeContainerTest
.............\.................\App.xaml
.............\.................\App.xaml.cs
.............\.................\Properties
.............\.................\..........\AssemblyInfo.cs
.............\.................\..........\Resources.Designer.cs
.............\.................\..........\Resources.resx
.............\.................\..........\Settings.Designer.cs
.............\.................\..........\Settings.settings
.............\.................\TreeContainerTest.csproj
.............\.................\winTreeContainerTest.xaml
.............\.................\winTreeContainerTest.xaml.cs
.............\VisLog.xaml
.............\VisLog.xaml.cs
.............\VisLogTree
.............\..........\App.xaml
.............\..........\App.xaml.cs
.............\..........\Properties
.............\..........\..........\AssemblyInfo.cs
.............\..........\..........\Resources.Designer.cs
.............\..........\..........\Resources.resx
.............\..........\..........\Settings.Designer.cs
.............\..........\..........\Settings.settings
.............\..........\VisLogTree.csproj
.............\..........\Window1.xaml
.............\..........\Window1.xaml.cs