Почему не удаётся использовать полосу прокрутки в ListView?
Она отображается, но ею нельзя пользоваться . Из-за чего это может быть ?
<StackPanel Margin="10 0 10 0">
<ScrollViewer IsEnabled="True" VerticalScrollBarVisibility="Visible">
<ListView x:Name="listBook" BorderThickness="0"
Background="Transparent">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Border
Canvas.Top="30"
Width="100"
Margin="0 5 0 5"
HorizontalAlignment="Left"
BorderBrush="Blue"
BorderThickness="1"
CornerRadius="10">
<Border.Effect>
<DropShadowEffect BlurRadius="20"
Opacity=".5"
ShadowDepth="1" />
</Border.Effect>
<Border Name="ReceiverColor"
BorderBrush="#FF96B2E4"
BorderThickness="2"
CornerRadius="10">
<Grid>
<Border Name="Mask"
Background="White"
BorderBrush="#FF3B5998"
BorderThickness="0"
CornerRadius="10">
</Border>
<StackPanel>
<Image Stretch="Fill" Margin="5">
<Image.Source>
<Binding Path="Book.Image">
<Binding.TargetNullValue>
<ImageSource>
/Resources/imageNull.png
</ImageSource>
</Binding.TargetNullValue>
</Binding>
</Image.Source>
</Image>
<StackPanel.OpacityMask>
<VisualBrush Visual="{Binding ElementName=Mask}" />
</StackPanel.OpacityMask>
</StackPanel>
</Grid>
</Border>
</Border>
<TextBlock Text="{Binding Book.NameBook}" Margin="110 9 0 0" FontSize="20" HorizontalAlignment="Left"/>
<TextBlock Text="Автор книги:" Margin="110 45 0 0" HorizontalAlignment="Left"
FontSize="14" FontWeight="Normal"/>
<TextBlock Text="{Binding Book.AuthorOfThebook}" Margin="205 45 0 0" HorizontalAlignment="Left"
FontSize="14" FontWeight="Normal"/>
<TextBlock Text="Год издания:" Margin="110 65 0 0" HorizontalAlignment="Left"
FontSize="14" FontWeight="Normal"/>
<TextBlock Text="{Binding Book.YearOfPublication, StringFormat=MM.dd.yyyy}" Margin="205 65 0 0" HorizontalAlignment="Left"
FontSize="14" FontWeight="Normal"/>
<TextBlock Text="Книга выдана:"
FontSize="14"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
Margin="0 0 180 5"/>
<TextBlock VerticalAlignment="Bottom"
TextWrapping="Wrap" HorizontalAlignment="Right"
Margin="0 0 128 5" FontSize="14"
Text="{Binding SchoolBoy.SurName}"/>
<TextBlock VerticalAlignment="Bottom"
TextWrapping="Wrap" HorizontalAlignment="Right"
Margin="0 0 60 5" FontSize="14"
Text="{Binding SchoolBoy.Name}"/>
<TextBlock VerticalAlignment="Bottom"
TextWrapping="Wrap" HorizontalAlignment="Right"
Margin="0 0 30 5" FontSize="14"
Text="{Binding Class.Number}"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ScrollViewer >
</StackPanel>
Стиль ListView
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Margin" Value="0 0 0 20"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<Border CornerRadius="20" x:Name="Bd"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
BorderBrush="#1E90FF"
BorderThickness="1" Background="White"
Padding="10 0 0 0"
SnapsToDevicePixels="true">
<ContentPresenter ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
SnapsToDevicePixels="True"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Background" TargetName="Bd" Value="#E6E6FA"/>
<Setter Property="Foreground" Value="#4169E1"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="#A0522D"/>
<Setter Property="Background" TargetName="Bd" Value="#FFF8DC"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Ответы (1 шт):
Автор решения: Кирилл
→ Ссылка
Всё, поправил косяк обернул StackPanel в <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
ну и закрывающий тег в конце
Касаемо прокрутки = (если не наведена мышка на скролл, то вот код)
в xmal создаём событие PreviewMouseWheel="ScrollViewer_PreviewMouseWheel"
ScrollViewer scv = (ScrollViewer)sender;
scv.ScrollToVerticalOffset(scv.VerticalOffset - e.Delta / 3);
e.Handled = true;