У меня есть ListBox
, который отображает список элементов управления WPF. Моя проблема заключается в том, что вертикальная полоса прокрутки показывается, но отключена, даже если имеется достаточно элементов, которые необходимо прокручивать ListBox
. Еще один возможный факт состоит в том, что он содержится в файле Integration.ElementHost
.Прокрутка в списке не работает
WPF Noobie, Джим
Вот XAML для ListBox
:
// for brevity I removed the Margin and Tooltip attributes
<Grid x:Class="Xyzzy.NoteListDisplay"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel Name="stackPanel" Orientation="Vertical"
ScrollViewer.VerticalScrollBarVisibility="Visible">
<StackPanel Orientation="Horizontal">
<CheckBox Name="AllRecent" IsChecked="False" >View All Recent</CheckBox>
<CheckBox Name="AscendingOrder" IsChecked="False">Descending Order</CheckBox>
<Button Name="btnTextCopy" Click="btnCopyText_Click">Copy All</Button>
</StackPanel>
<ListBox Name="NoteList"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Visible">
</ListBox>
</StackPanel>
</Grid>
И XAML для управления отображается в каждом ListBox
пункта:
<UserControl x:Class="Xyzzy.NoteDisplay"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<TextBlock Name="Heading" FontSize="10">Note Heading</TextBlock>
<Button Name="btnCopyText" Height="20" FontSize="12"
Click="btnCopyText_Click">Copy
</Button>
</StackPanel>
<TextBlock Name="Body" FontSize="14">Note Body</TextBlock>
</StackPanel>
</Grid>
</UserControl>
Когда я помещал Listbox в Grid, а не StackPanel, проблема исчезла. Я это ошибка кода WPF, ошибка дизайна WPF или преднамеренное поведение WPF? –
Я думаю, что это просто способ работы StackPanel. В вашем случае StackPanel был таким же высоким, как ListBox, который должен был быть без прокрутки, затем StackPanel получил «обрезанный» внизу. –
Да, проблема с StackPanel, и проблема решена Grid. Спасибо @JohnMyczek –