次のようなバイナリツリーをwpfで作成しようとしています:
そこで、Node (Abstract)、OneTypeNode、TwoTypeNode の 3 つのクラスを作成しました (これらは例です。ここでは MVVM が重要です)。すべてのノードには、彼の 2 人の息子への参照もあります。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>
これにより、実際に息子を再帰的に作成できました。しかし、主な問題が 2 つあります。まず、サイズです。グリッドのサイズを制御できません。これは、両側に何人の息子がいるかわからないためです。また、2つのノードごとに線を作成する方法がわかりません。何か案が?本当にありがとう!