Элемент управления WPF выравнивается по низу, даже если содержимое выше контейнера

У меня есть элемент управления, который должен отображаться таким образом, чтобы он всегда был выровнен в нижней части контейнера, даже если элемент управления выше его контейнера. Я установил контроль VerticalAlignment="Bottom"и это прекрасно работает, когда контейнер больше, но когда контейнер сжимается, верхняя часть элемента управления выравнивается с верхней частью контейнера, а нижняя часть обрезается. Мне нужно отрезать верх.

<Window x:Class="NestedListBox.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:system="clr-namespace:System;assembly=mscorlib"
        x:Name="Root"
        Title="MainWindow" Height="185" Width="525">
    <Grid>
        <ItemsControl VerticalAlignment="Bottom">
            <system:String>Test 1</system:String>
            <system:String>Test 2</system:String>
            <system:String>Test 3</system:String>
            <system:String>Test 4</system:String>
            <system:String>Test 5</system:String>
            <system:String>Test 6</system:String>
            <system:String>Test 7</system:String>
            <system:String>Test 8</system:String>
            <system:String>Test 9</system:String>
            <system:String>Test 10</system:String>
            <system:String>Test 1</system:String>
            <system:String>Test 2</system:String>
            <system:String>Test 3</system:String>
            <system:String>Test 4</system:String>
            <system:String>Test 5</system:String>
            <system:String>Test 6</system:String>
            <system:String>Test 7</system:String>
            <system:String>Test 8</system:String>
            <system:String>Test 9</system:String>
            <system:String>Test 10</system:String>
        </ItemsControl>
    </Grid>
</Window>

Когда вы перетаскиваете окно больше, чем ItemsControl, он остается выровненным по дну, но как только окно становится меньше, вершины выравниваются.

Вместо GridЯ тоже пробовал DockPanel установка ItemsControl иметь DockPanel.Dock="Bottom", но это тоже не работает.

1 ответ

Решение

Вы можете использовать Canvas для достижения ожидаемого результата

Обратите внимание, что VerticalAlignment удаляется из ItemsControl и Canvas.Bottom установлен на 0, чтобы сделать его придерживаться нижней части холста.

<Grid>
    <Canvas>
        <ItemsControl Canvas.Bottom="0">
            <system:String>Test 1</system:String>
            <system:String>Test 2</system:String>
            <system:String>Test 3</system:String>
            <system:String>Test 4</system:String>
            <system:String>Test 5</system:String>
            <system:String>Test 6</system:String>
            <system:String>Test 7</system:String>
            <system:String>Test 8</system:String>
            <system:String>Test 9</system:String>
            <system:String>Test 10</system:String>
            <system:String>Test 1</system:String>
            <system:String>Test 2</system:String>
            <system:String>Test 3</system:String>
            <system:String>Test 4</system:String>
            <system:String>Test 5</system:String>
            <system:String>Test 6</system:String>
            <system:String>Test 7</system:String>
            <system:String>Test 8</system:String>
            <system:String>Test 9</system:String>
            <system:String>Test 10</system:String>
        </ItemsControl>
    </Canvas>
</Grid>
Другие вопросы по тегам