#wpf
#wpf
Вопрос:
У меня есть пример кода, поведение которого показано на рисунке ниже.
<DockPanel LastChildFill="False" >
<ScrollViewer DockPanel.Dock="Top">
<ItemsControl>
<Label Content ="First" BorderBrush="Violet" BorderThickness="2"/>
<Label Content ="Second" BorderBrush="Black" BorderThickness="2"/>
<Label Content ="Third" BorderBrush="Yellow" BorderThickness="2" />
<Label Content ="Fourth" BorderBrush="Green" BorderThickness="2"/>
<Label Content ="Fifth" BorderBrush="Maroon" BorderThickness="2"/>
</ItemsControl>
</ScrollViewer>
<Button Height="50" DockPanel.Dock="Top">button</Button>
</DockPanel>
Проблема здесь в том, что кнопка обрезается при изменении размера, и только тогда ScrollViewer активируется. Как я могу предотвратить обрезку кнопок и изменить размер ScrollViewer вместо этого, когда недостаточно места?
Ответ №1:
Измените порядок дочерних элементов DockPanel и установите LastChildFill
значение True
для заполнения ScrollViewer. Закрепите кнопку Bottom
и установите для Dockpanel VerticalAlignment
значение Top
.
<DockPanel LastChildFill="True" VerticalAlignment="Top">
<Button Height="50" DockPanel.Dock="Bottom">button</Button>
<ScrollViewer>
<ItemsControl>
<Label Content ="First" BorderBrush="Violet" BorderThickness="2"/>
<Label Content ="Second" BorderBrush="Black" BorderThickness="2"/>
<Label Content ="Third" BorderBrush="Yellow" BorderThickness="2"/>
<Label Content ="Fourth" BorderBrush="Green" BorderThickness="2"/>
<Label Content ="Fifth" BorderBrush="Maroon" BorderThickness="2"/>
</ItemsControl>
</ScrollViewer>
</DockPanel>