私はListBox
にWPFコントロールのリストを表示しています。 私の問題は、垂直スクロールバーは表示されますが、ListBox
がスクロール可能な項目が十分であっても無効になります。 もう1つのおそらく関連する事実は、これが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>
そして、それぞれのListBox
項目に表示されるコントロールのためのXAML:
<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>
StackPanelではなくListboxをGridに配置すると、問題は解消されます。 これはWPFコードのバグ、WPFデザインのバグ、または意図的なWPFの動作ですか? –
私はそれがStackPanelの仕組みだと思います。あなたのケースでは、StackPanelは、ListBoxがスクロールせずに必要とするほどの高さでしたが、StackPanelは下部に「切り捨て」されていました。 –
はい、問題はStackPanelにあり、問題はGridによって解決されます。ありがとう@JohnMyczek –