【发布时间】:2012-05-24 12:37:45
【问题描述】:
我在gridview 中有gridview 并且想要实现鼠标滚轮滚动功能。所以我将此块添加到内部gridview中
<GridView.Template>
<ControlTemplate >
<ItemsPresenter />
</ControlTemplate>
</GridView.Template>
但在这种情况下滑动不起作用
我该如何解决这个问题?
第 2 部分。 我将尝试更深入地描述这种情况。我的主屏幕应该实现类似于 Windows 8 主屏幕上的功能。它应该被放大/缩小。这就是我使用 SenaticZoom 的原因。在 ZoomIn 中,我放置了包含控件的 GridView。该控件包含自己的GridView(我需要实现刷卡功能)。我不知道如何更改此 xaml 文件。有什么建议么?控制代码:
<GridView
x:Name="iGridView"
Margin="120,0,0,0"
ItemsSource="{Binding Source={StaticResource ViewSource}}"
ItemTemplateSelector ="{StaticResource ItemTemplateSelector}"
IsItemClickEnabled="True"
MinCellHeight = "450"
MinCellWidth = "245"
IsSwipedEnabled="True"
>
<GridView.Template>
<ControlTemplate>
<ItemsPresenter />
</ControlTemplate>
</GridView.Template>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<Grid Margin="0,0,0,20">
<Button
Content="{Binding Title}"
Style="{StaticResource Header}"/>
</Grid>
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.Panel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid VerticalAlignment="Top" Height="550" Orientation="Vertical"/>
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</GridView.GroupStyle>
</GridView>
基本页面的代码
<SemanticZoom x:Name="sZoom" VerticalAlignment="Stretch" >
<SemanticZoom.ZoomedInView>
<GridView x:Name="zoomIn" SelectionMode="None"
IsItemClickEnabled="False"
IsSwipeEnabled="False"
>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.ItemContainerStyle>
<Style TargetType="GridViewItem">
<Setter Property="Template" Value="{StaticResource ItemTemplate}"/>
</Style>
</GridView.ItemContainerStyle>
<local:Control1 x:Name="Control1" />
<local:Control1 x:Name="Control2" />
</GridView>
</SemanticZoom.ZoomedInView>
【问题讨论】:
-
但是鼠标滚轮应该只使用默认的 GridView 吗?如果您创建一个 Grid 应用程序 - 这应该可以工作...
-
对不起,这个答案没有帮助。我在语义缩放控件中使用外部 gridview,内部 - 用于滑动元素
-
据我记得 - 它只是工作,但你正在做的是完全错误的。您正在将 GridView 的控件模板更改为缺少 GridView 预期的所有模板部分的东西 - 包括 ScrollViewer。
-
@FilipSkakun 如果 GridView 嵌套在另一个 ScrollViewer 中,您绝对需要从 GridView 控件模板中删除 ScrollViewer。否则,内部 ScrollViewer 不需要滚动,但仍会吃掉鼠标滚轮事件。外部的 ScrollViewer 确实滚动,但没有获得鼠标滚轮事件,因此,使用鼠标滚轮滚动不起作用。
-
但是,如果 GridView 已经有一个 ScrollViewer,你为什么还要把它放在一个 ScrollViewer 中呢?我需要再次查看一些代码以了解它是如何完成的,但我几乎可以肯定上面的模板是错误的。
标签: xaml gridview windows-runtime winrt-xaml semantic-zoom