Я сражаюсь с ScrollViewer внутри StackPanel. ScrollViewer показывает только одну полосу прокрутки в зависимости от ориентации StackPanel, что я понимаю, поскольку StackPanel считает неограниченным в этом направлении. Поэтому я попытался ограничить размер ScrollViewer, привязывая его к ширине и высоте StackPanel. Когда приложение отображается, оно показывает обе полосы прокрутки, но они не изменяются правильно. Что не так или как я должен это делать.ScrollViewer внутри (Stack-) Panel
(Примечание:.. Я знаю, что могу использовать сетку вместо StackPanel и ScrollViewer ведет себя, как и ожидалось, однако, как только я помещаю что сетки в StackPanel проблема появляется снова)
<Window x:Class="tt_WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="500" Width="500">
<StackPanel x:Name="sp" Orientation="Horizontal">
<ScrollViewer
HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
Width="{Binding ElementName=sp, Path=ActualWidth}"
Height="{Binding ElementName=sp, Path=ActualHeight}">
<Button Background="LightCoral" Width="500" Height="500">Hey</Button>
</ScrollViewer>
</StackPanel>
Почему бы вам не использовать сетку? Какое специальное свойство StackPanel вам нужно? – nvoigt
Я хочу иметь элемент управления (который включает ScrollViewer и), который я могу использовать в разных местах, в том числе в StackPanel. –
Вы действительно должны использовать другой тип панели. StackPanel пытается минимизировать собственный размер. Вы хотите, чтобы ваш элемент заполнил панель. Не сражайтесь с StackPanel, выберите панель, которая действительно делает то, что вы хотите. Может быть, DockPanel. – nvoigt