C# 使用mvvm动态创建控件

C# 使用mvvm动态创建控件,c#,xaml,itemscontrol,C#,Xaml,Itemscontrol,我一直在尝试动态创建控件,到目前为止它正在工作。但我的问题是布局 <Grid Grid.Row="2" > <ItemsControl IsTabStop="False" ItemsSource="{Binding ListControls}"> <ItemsControl.ItemTemplate> <DataTemplate>

我一直在尝试动态创建控件,到目前为止它正在工作。但我的问题是布局

<Grid Grid.Row="2" >
                <ItemsControl IsTabStop="False" ItemsSource="{Binding ListControls}">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
                                <Grid>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="120*"/>
                                        <RowDefinition Height="120*"/>
                                        <RowDefinition/>
                                    </Grid.RowDefinitions>
                                    <Label  Content="AN:" Margin="5,5,5,5" FontSize="14" VerticalContentAlignment="Center"/>
                                    <TextBox  Grid.Column="1" FontSize="14" VerticalContentAlignment="Center" Margin="5,5,5,5"/>
                                </Grid>
                            </StackPanel>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </Grid>

使用上面的xaml。这是布局的屏幕截图

<Grid Grid.Row="2" >
                <ItemsControl IsTabStop="False" ItemsSource="{Binding ListControls}">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
                                <Grid>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="120*"/>
                                        <RowDefinition Height="120*"/>
                                        <RowDefinition/>
                                    </Grid.RowDefinitions>
                                    <Label  Content="AN:" Margin="5,5,5,5" FontSize="14" VerticalContentAlignment="Center"/>
                                    <TextBox  Grid.Column="1" FontSize="14" VerticalContentAlignment="Center" Margin="5,5,5,5"/>
                                </Grid>
                            </StackPanel>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </Grid>

如果我使用像这样的xaml

 <Grid Grid.Row="2" >
                <ItemsControl IsTabStop="False" ItemsSource="{Binding ListControls}">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
                                <Label  Content="AN:" Margin="5,5,5,5" FontSize="14" VerticalContentAlignment="Center"/>
                                <TextBox  Width="100" FontSize="14" VerticalContentAlignment="Center" Margin="5,5,5,5"/>
                            </StackPanel>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </Grid>

但我的目标是,如果程序最大化,我希望文本框能够扩展


如何调整xaml代码以扩展文本框?谢谢您

直接使用
网格
而不是
堆叠面板
还可以删除
Width=“100”


Owww。解决方案非常简单。非常感谢你。及其工作原理