C# 有些控件没有拉伸

C# 有些控件没有拉伸,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,在这个窗口中,我有许多不同的控件,我想拉伸,这是可能的 但是“stackGroup”、“listBox1”、“listBox2”中的一些控件没有拉伸。。为什么? 也是这样我做这种页面对吗 <Window x:Class="TwoColumnGridSample.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.m

在这个窗口中,我有许多不同的控件,我想拉伸,这是可能的 但是“stackGroup”、“listBox1”、“listBox2”中的一些控件没有拉伸。。为什么? 也是这样我做这种页面对吗

<Window x:Class="TwoColumnGridSample.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Loaded="Window_Loaded"
        Title="Window1" Height="759" Width="800">
    <Grid Margin="0,0,0,95">
        <Grid.RowDefinitions>
            <RowDefinition Height="509"></RowDefinition>
            <RowDefinition Height="111"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0" Height="472" VerticalAlignment="Top">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="165" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
            <StackPanel Grid.Column="0" VerticalAlignment="Stretch" Margin="0,0,0,163">
                <ListBox Name="listBox1" SelectedItem="{Binding SelectedItem}" Width="165" ItemsSource="{Binding Buttons}" SelectionChanged="ListBox_SelectionChanged" HorizontalContentAlignment="Left" VerticalAlignment="Stretch"  >
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <Button Content="{Binding .}" Click="Button_Click"  Style="{StaticResource  listboxbuttons}"></Button>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
            </StackPanel>
            <StackPanel Name="stackGroup" HorizontalAlignment="Stretch" Grid.Column="1" Height="457" VerticalAlignment="Top" >
                <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="460" Margin="0,0,10,0" >
                    <Grid.RowDefinitions>
                        <RowDefinition Height="100" />
                        <RowDefinition Height="24" />
                        <RowDefinition Height="316"/>
                        <RowDefinition Height="60" />
                    </Grid.RowDefinitions>
                    <Image x:Name="imageMap" Source="Resources/images.jpg" HorizontalAlignment="Stretch" Grid.Row="0" Stretch="Fill" Margin="2,0,0,0" />
                    <Border  BorderBrush="Green" BorderThickness="3" CornerRadius="1,1,1,1" Margin="2,4,0,17" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.RowSpan="2">
                        <Grid Grid.Row="1" Margin="3,3,3,3">
                            <GroupBox Header="Club Badge" HorizontalAlignment="Left" VerticalAlignment="Top" Height="123" Width="134"/>
                            <GroupBox Header="Goalie" HorizontalAlignment="Left" VerticalAlignment="Top" Height="179" Width="134" Margin="0,128,0,0"/>
                            <GroupBox Header="Defender" HorizontalAlignment="Left" Margin="139,0,0,0" VerticalAlignment="Top" Height="307" Width="134"/>
                            <GroupBox Header="MidFielder" HorizontalAlignment="Left" Margin="278,0,0,0" VerticalAlignment="Top" Height="307" Width="134"/>
                            <GroupBox Header="GroupBox" HorizontalAlignment="Left" Margin="417,0,0,0" VerticalAlignment="Top" Height="307" Width="155"/>
                        </Grid>
                    </Border>
                    <ProgressBar BorderBrush="#FF6081B0" HorizontalAlignment="Stretch" Margin="2,303,0,43" Value="45" Grid.Row="2" Foreground="#FF6081B0" Grid.RowSpan="2"  />
                </Grid>
            </StackPanel>
        </Grid>
        <ListBox Height="96" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Bottom" Name="listBox2" Width="782" Grid.RowSpan="2">
            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal" />
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>
            <ListBox.ItemContainerStyle>
                <Style TargetType="ListBoxItem">
                    <Setter Property="Padding" Value="30 0 30 0" />
                </Style>
            </ListBox.ItemContainerStyle>
            <ListBoxItem Content="Vertical Item 1" />
            <ListBoxItem Content="Vertical Item 2" />
            <ListBoxItem Content="Vertical Item 3" />
            <ListBoxItem Content="Vertical Item 4" />
            <ListBoxItem Content="Vertical Item 5" />
        </ListBox>
    </Grid>
</Window>

与中的答案相同。StackPanel不会在与其方向相同的方向上进行拉伸对齐。因此,方向为垂直的StackPanel不会考虑子对象拉伸的垂直对齐

listBox1不拉伸,因为它的垂直对齐是拉伸的,并且它的容器StackPanel的方向是垂直的(这是它的默认方向)。您可以将StackPanel更改为水平,用另一个容器(例如DockPanel)替换它,或者完全删除它,因为它只包含一个元素


类似的推理也适用于您的其他问题

在哪个方向它们不会拉伸宽度或高度?stackGroup仅适用于左方向和右方向,但不适用于底部方向。listbox1和listbox2不向任何一个方向工作