Как растянуть элементы в DockPanel C#?

Рейтинг: 0Ответов: 1Опубликовано: 02.08.2025

Есть разметка на XAML, сделал TabControl, проблема в том что я не могу растянуть последний элемент, а именно ScrollViewer вместе с ListBox (да и пытался просто ListBox, и другие элементы).

Как мне растянуть ScrollViewer до конца страницы?

А ещё, по возможности, указать мне на ошибки компановки элементов на странице? (может мне почитать какой-то монументальный труд о том как компановать, но какой?)

<TabControl VerticalAlignment="Top">
    <TabItem Header="Move data">
        <DockPanel LastChildFill="True">

            <Viewbox DockPanel.Dock="Top">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <DockPanel
                        Grid.Column="0"
                        Margin="5"
                        DockPanel.Dock="Top">
                        <TextBlock
                            Width="24"
                            Margin="5"
                            VerticalAlignment="Center"
                            FontSize="6"
                            Text="Откуда"
                            TextAlignment="Center" />
                        <ComboBox
                            x:Name="cbC"
                            MinWidth="75"
                            MaxWidth="100"
                            MaxHeight="16"
                            FontSize="6"
                            ItemsSource="{Binding Path=from_ClientCardEntries}"
                            SelectedIndex="0" />
                    </DockPanel>

                    <DockPanel
                        Grid.Column="1"
                        Margin="5"
                        DockPanel.Dock="Top">
                        <TextBlock
                            Width="24"
                            Margin="5"
                            VerticalAlignment="Center"
                            FontSize="6"
                            Text="Куда"
                            TextAlignment="Center" />
                        <ComboBox
                            MinWidth="75"
                            MaxWidth="100"
                            MaxHeight="16"
                            FontSize="6"
                            ItemsSource="{Binding Path=to_ClientCardEntries}" />
                    </DockPanel>
                </Grid>
            </Viewbox>
            
            <Button
                x:Name="moveData_button"
                Grid.Row="1"
                Width="150"
                MaxWidth="150"
                Margin="10"
                Click="moveData_button_Click"
                Content="Выполнить"
                DockPanel.Dock="Top" />

            <ScrollViewer DockPanel.Dock="Top">
                <ListBox x:Name="asd">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <DockPanel LastChildFill="True">
                                <TextBlock Margin="5" Text="Время запроса" />
                                <TextBlock Margin="5" Text="Код ответа" />
                                <TextBlock
                                    Margin="5"
                                    Text="Ответ сервера"
                                    TextWrapping="Wrap" />
                            </DockPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
            </ScrollViewer>
            
        </DockPanel>
    </TabItem>
</TabControl>

введите сюда описание изображения

Ответы

▲ 0

Проблема была в другом, у меня изначально TabControl был в Grid

<Grid>
    <TabControl>
        <TabItem Header="Move data">
            
        </TabItem>
    </TabControl>
</Grid>

Стоило всего лишь заменить Grid, который оборачивал TabControl, на DockPanel и теперь ScrollViewer стал растягиваться до конца страницы

<DockPanel>
    <TabControl>
        <TabItem Header="Move data">
            
        </TabItem>
    </TabControl>
</DockPanel>