Как сохранить определенный элемент xaml в окне (чтобы он не переполнял нижнюю часть) - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь сделать простое приложение для выставления счетов в рамках оценки. Я сделал интерфейс со списком, который содержит все элементы, которые были запрошены. Однако, когда я добавляю слишком много элементов, список проходит через нижнюю часть окна, и я должен изменить размер окна, чтобы соответствовать.

Я попробовал док-панель и назначил стековую панель для самой сетки. Если я установлю фиксированную высоту, она будет работать, как и ожидалось.

Вот xaml списка:

    <StackPanel Grid.Column="1" Grid.Row="0" ClipToBounds="True">
        <ListBox Name="Shirts" HorizontalContentAlignment="Stretch" ScrollViewer.VerticalScrollBarVisibility="Visible" Margin="5" ClipToBounds="True">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock>
                        <Run Text="{Binding ShirtSize}" />
                        <Run Text="{Binding ShirtStyle}" />
                        <Run Text="{Binding ShirtColour}" />
                    </TextBlock>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
        <Button Content="Print Invoice" Margin="5" ClipToBounds="True"/>
    </StackPanel>

Я ожидал, что код будет работать так (он не предназначен для фиксированной высоты, но работает как пример).

GUI that is meant to work. Как это на самом деле работает. How it actually works.

1 Ответ

0 голосов
/ 03 января 2019

Используйте DockPanel вместо StackPanel, и он должен работать лучше. StackPanel будет расти вместе с содержимым независимо от размера контейнера. DockPanel будет учитывать размер контейнера и заполнять доступное пространство. Сначала установите порядок кнопок с Dock = "Bottom", а затем ListBox с Dock = "Fill" (список будет располагаться над кнопкой, даже если он объявлен после нее, что немного не интуитивно понятно)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...