0

次のようなバイナリツリーを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つのノードごとに線を作成する方法がわかりません。何か案が?本当にありがとう!

4

0 に答える 0