WinRT:右键单击用于选择项目。滑动手势没有

时间:2014-05-07 01:29:47

标签: windows-runtime winrt-xaml selection swipe right-click

我觉得我错过了一些明显的东西。我有一个应用程序,它使用GridViewItem的'IsSelected'属性来指示已选择一个项目。当我在台式计算机上使用该应用程序(没有触摸设备)并且我右键单击该项目时,它将被选中。采取相同的程序并将其放在Surface上,我找不到任何会选择它的手势。向下滑动,按住;似乎没有任何东西可以完成右键单击在桌面上所做的工作。

任何人都有任何可能缺少的想法?

2 个答案:

答案 0 :(得分:1)

好的,得到了​​答案但并不漂亮。在我的代码中,我试图用我自己的名为 ContentView 的控件继承 GridView 。在XAML中没有标准控件的子类(你不能使用'BasedOn'来获取内置控件的样式)所以我的 ContentView 没有采用标准 GridView的即可。但是,在拆开标准样式之后,我发现了两个关键特性:

IsSwipeEnabled - 必须设置为 true 才能滑动以处理该项目。

ScrollViewer.VerticalScrollMode - 必须禁用,以便滚动查看器不会尝试将滑动动作解释为向下滚动的命令。

之后,滑动到右键单击就可以轻松实现。

答案 1 :(得分:0)

我得到了你的要求。这似乎违反直觉,是吧?在这种情况下,我的首选项是启用项目单击并使用项目单击来设置所选项目。如果发现这对用户来说是最直观的。从这个XAML开始:

<GridView IsItemClickEnabled="True" ItemClick="GridView_ItemClick" />

然后只需这样做:

private void GridView_ItemClick(object sender, ItemClickEventArgs e)
{
    var grid = sender as GridView;
    if (grid.SelectedItems.Contains(e.ClickedItem))
        grid.SelectedItems.Remove(e.ClickedItem);
    else
        grid.SelectedItems.Add(e.ClickedItem);
}

它应该适用于SelectionMode Single和Multiple就好了。

这有意义吗?

// Jerry