Некоторые элементы управления не растягиваются [дубликаты]

1

В этом окне у меня много разных элементов управления, и я хочу растянуть, что возможно, но есть некоторые элементы управления '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>
  • 0
    в каком направлении они не растягиваются ни по ширине, ни по высоте?
  • 0
    stackGroup работает только для левого и правого направления, но не работает для нижнего направления. listbox1 и listbox2 не работают ни в одном направлении
Теги:
xaml
wpf

1 ответ

1
Лучший ответ

Тот же ответ, что и в этом вопросе. StackPanel не будет учитывать выравнивание растяжения в том же направлении, что и его ориентация. Таким образом, StackPanel, ориентация которого вертикальна, не будет уважать вертикальное выравнивание растяжения для ребенка.

listBox1 не растягивается, потому что VerticalAlignment растягивается, и контейнер StackPanel имеет ориентацию по вертикали (по умолчанию). Вы можете изменить, что StackPanel будет горизонтальным, замените его другим контейнером (например, DockPanel) или полностью удалите его, поскольку он содержит только один элемент.

Подобные рассуждения могут быть применены к вашим другим проблемам

Ещё вопросы

Сообщество Overcoder
Наверх
Меню