Элемент управления 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>