我正在尝试在 wpf 中创建一个看起来像这样的二叉树:
所以,我创建了三个类——Node(Abstract)、OneTypeNode 和 TwoTypeNode(这些是示例,顺便说一句,MVVM 在这里很重要)。每个节点也都提到了他的两个儿子。在 xaml 中,它看起来像这样:
<StackPanel>
<Grid ShowGridLines="False">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Border Grid.Column="1" Grid.Row="0" x:Name="CircleFather" CornerRadius="5"
Width="40"
Height="40"
Background="DarkKhaki"
Margin="0 20 0 0"
BorderThickness="1" >
</Border>
<ContentControl Grid.Row="2" Grid.Column="0" Content="{Binding RightSon}" Margin="10"></ContentControl>
<ContentControl Grid.Row="2" Grid.Column="2" Content="{Binding LeftSon}" Margin="10"></ContentControl>
</Grid>
<Line ></Line>
</StackPanel>
这实际上让我递归地创建了儿子!但是有两个主要问题:首先是大小,我无法控制网格的大小,因为我不知道每边会有多少个儿子。ALSO - 我不知道如何在每两个节点之间创建线。任何想法?非常非常感谢你!