2012-11-01 18 views
0

我想有GridView幻灯片功能,所以我用的操作,但它不工作,这里是XAML代码:WinRT - 如何操作GridView?

<GridView x:Name="DaysGridView" HorizontalAlignment="Right" IsItemClickEnabled="True" 
ManipulationMode="All" ManipulationInertiaStarting="DaysGridView_ManipulationInertiaStarting" 
ManipulationStarting="DaysGridView_ManipulationStarting" 
ManipulationStarted="DaysGridView_ManipulationStarted" 
ManipulationDelta="DaysGridView_ManipulationDelta" 
ManipulationCompleted="DaysGridView_ManipulationCompleted" 
ItemClick="DaysGridView_ItemClick" 
SelectionChanged="DaysGridView_SelectionChanged"> 

当我用鼠标滑动,它的工作原理;但是当我滑入Windows Simulator的“基本触摸模式”时,它不起作用;如果我将GridView更改为Grid并添加上述操纵事件,它也可以使用。 那么,我该如何在GridView中进行操作?

回答

1

我今天刚刚问了MS们一个类似的问题,因为GridView模板中的ScrollViewer捕获了触摸输入并且无法访问这些事件,所以你不能以简单的方式完成它。我的解决方案是用一个透明的矩形覆盖控件,我捕获所有输入并过滤所有输入,以便我可以操纵我的子元素,ScrollViewer或两者。您需要知道如何将这些输入转换为ScrollTo ... SV上的偏移调用,这并不容易,然后您可能需要添加您自己的ScrollBars等。请查看我之前对similar question的回答,以获取更多想法。

+0

感谢您的快速响应。 –

0

我找到了这种情况下的解决方案:只需设置ScrollViewer.HorizontalScrollMode="Disabled"(我需要水平滑动),然后操作起作用!

+0

那么为什么你需要一个GridView呢? –

+0

我需要显示日历的月视图,我认为GridView是一个不错的选择。 Andy更好的解决方案 –

+0

带有WrapGrid ItemsPanel的WrapGrid或ItemsControl会更轻。您也可以在CodePlex上检查WinRTXamlCalendar。 –