【发布时间】:2013-09-18 12:15:42
【问题描述】:
我的滚动查看器有问题。
首先这是我的代码:
<GroupBox Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Header="Pictures"
Margin="5,2,2,2">
<ScrollViewer Grid.Column="1" Grid.Row="1" VerticalScrollBarVisibility="Auto" Margin="2">
<ListView ItemsSource="{Binding ImageBoxes, UpdateSourceTrigger=PropertyChanged}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" ScrollViewer.CanContentScroll="True"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Red"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
</Style.Resources>
<Setter Property="BorderBrush" Value="Orange"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Margin" Value="2"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Cursor" Value="Hand"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="BorderBrush" Value="Blue"/>
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</ScrollViewer>
</GroupBox>
ListView 的 ItemsSouce 绑定到模型中的 ObservableCollection。所有项目都正确显示。我只想上下滚动,这很好用。
我的问题是,我只能通过使用光标上下移动滚动条来滚动。鼠标滚轮不起作用。我需要这个来工作。
这里有什么问题?
【问题讨论】:
-
你的
WrapPanel有Orientation="Horizontal",你的意思是要垂直吗?除非高度变得小于项目的大小,否则只会以这种方式进行水平滚动,而不是“向上或向下”。 -
另外,如果我设置 Oriantation="Vertical" 我不能用鼠标滚轮滚动。
-
我不确定你是否需要额外的
ScrollViewer。您是否尝试过简单地删除它? ListView 已经内置了 ScrollViewer,其中水平和垂直滚动可见性通常设置为Auto。即,如果您只是删除 ScrollViewer,鼠标滚轮滚动应该可以正常工作。
标签: c# wpf scrollview