単一のアイテムがリストボックスのサイズより大きい場合、ListBoxスクロールバーを動作させるにはどうすればよいですか?WPFリストボックスは、1つのアイテムがコントロールの高さを超えた場合にコンテンツを表示できません。
私はカスタムItemTemplateを持つListBoxを持っています。テンプレートには、メモを取るためのメッセージとタイムスタンプが表示されます。問題は、オペレータが本当に長いメモを作成し、ListBoxのスクロールバーが表示されず、上下にスクロールしてメモ全体を表示できない場合です。このコントロールは、いくつかの小さな音符に対して完璧に機能します。大きな音符の後に小さな音符を追加すると、スクロールバーが表示され、スクロールダウンできますが、最初の音符全体が表示されず、スクロールしたときに次の音符にスナップされます。
<ListBox Grid.Row="1" ItemsSource="{Binding Notes}" HorizontalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}">
<ListBox.ItemTemplate>
<DataTemplate>
<Border Margin="1" Padding="5" BorderThickness="1" BorderBrush="SteelBlue" CornerRadius="3">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Text="{Binding CreatedDateTime, StringFormat={}{0:h:mm:ss tt}}" Margin="0,0,20,0"/>
<TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding Note}" TextWrapping="Wrap" FontSize="20"/>
</Grid>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
写真を説明するのに役立つ画像。
次の項目にスクロールすることはできますが、特大の項目内をスクロールすることはできません。 –
垂直スクロールバーを無効にしてから、リストボックス全体をScrollViewerに配置することもできます。 – Clemens
(Ed Plunkett)正しい。特大のアイテム内をスクロールできません。 (Clemens 23)。これは視覚的に機能します。しかし、私はスクロールバー上にホバーしていない限り、タッチスクリーン/マウスホイールを使って上下にスクロールできません。リストボックスはスクロールイベントをキャプチャしていて、ScrollViewerコンテナにそれらを伝播していないと思います。 –