如何不使用xaml在wpf中自动创建堆栈面板

时间:2019-05-25 10:28:13

标签: c# wpf wpf-controls

新手在这里。

我正在编写代码以为不同用户创建信息。我想自动生成堆栈面板。

例如,如果5个用户在ui中输入他/她的详细信息,然后单击添加按钮,则应为每个用户自动生成5个带有用户信息的堆栈面板。请问我可以使用什么wpfcontrol来实现此功能?谢谢大家。

        <StackPanel >
            <StackPanel Orientation="Horizontal" Height="32">
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Margin="0,6,5,0"  
                       Text="First Name" VerticalAlignment="Top"/>
                <TextBox Name="firstname" TextWrapping="Wrap" Text="" Margin="0,0,0,9" Width="71"/>

            </StackPanel>

            <StackPanel Orientation="Horizontal" Height="49" RenderTransformOrigin="0.502,1.031">
                <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Margin="0,6,5,0" 
                       Text="Last Name" VerticalAlignment="Top"/>
                <TextBox Name="lastname" TextWrapping="Wrap" Text="" Margin="0,0,0,26" Width="71" TextChanged="TextBox_TextChanged"/>

            </StackPanel>
        </StackPanel>
        <StackPanel VerticalAlignment="Bottom"  Margin="10,10,0,0" FlowDirection="LeftToRight" Orientation="Horizontal" Grid.Row="1">
            <Button x:Name="Btn_add" Content="Add"  Click="Btn_add_Click"   
                    HorizontalAlignment="Center" VerticalAlignment="Top" Width="44"/>
            <StackPanel Margin="10">

                <WrapPanel Margin="0,10">
                    <TextBlock Text="Full Name: " FontWeight="Bold" />

                    <TextBlock Text="{Binding Path=Text,     ElementName=lastname}" />
                    <TextBlock Text="{Binding Path=Text, ElementName=firstname}" />

                </WrapPanel>
            </StackPanel>
        </StackPanel>


1 个答案:

答案 0 :(得分:1)

您可以创建一个包含StackPanel及其内容的UserControl。然后,您将可以随时实例化该UserControl。有关WPF UserControl的教程,请参见Creating & using a UserControl