0

我正在尝试在 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 - 我不知道如何在每两个节点之间创建线。任何想法?非常非常感谢你!

4

0 回答 0