В приведенном ниже примере у меня есть ListBox с десятками названий шрифтов.
Я бы подумал, что на нем автоматически будет вертикальная полоса прокрутки, чтобы вы могли выбрать ЛЮБОЙ шрифт, а не только первые в списке, но это не так.
Итак, я добавил «ScrollViewer», который помещает «область полосы прокрутки» справа, но в области полосы прокрутки нет полосы прокрутки, так что вы можете прокручивать (!).
Почему не работает автоматическая полоса прокрутки и как заставить ее иметь полосу прокрутки?
<StackPanel Name="stack1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="2*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<ScrollViewer>
<ListBox Grid.Row="0" Name="lstFonts" Margin="3" ItemsSource="{x:Static Fonts.SystemFontFamilies}"/>
</ScrollViewer>
</Grid>
</StackPanel>
ListBox
внутрь,ScrollViewer
иListBoxItems
они растягивались настолько широко, насколько хотели, за пределы размераListBox
. УдалениеScrollViewer
и установкаScrollViewer.VerticalScrollBarVisibility="Visible"
иScrollViewer.HorizontalScrollBarVisibility="Disabled"
сделали свое дело. Спасибо за помощь!