Windows 运行时 - WinRT:右键单击适用于选择项目。滑动手势不起作用



我觉得我错过了一些明显的东西。我有一个应用程序,它使用GridViewItem的'IsSelected'属性来指示一个项目已被选中。当我在台式计算机(没有触摸设备)上使用该应用程序时,右键单击该项目,它就会被选中。把同样的程序放到Surface上,我找不到选择它的手势。Swipe-down,按住;似乎没有什么能完成右键在桌面上的工作。

有人知道遗漏了什么吗?

好了,我知道答案了。在我的代码中,我试图用我自己的控件ContentView子类化GridView。在XAML中没有标准控件的子类(你不能使用'BasedOn'来选择内置控件的样式),所以我的ContentView没有选择标准GridView的样式。然而,在分析了标准样式之后,我发现了两个关键特性:

iswipeenabled -必须设置为true才能在项目上滑动。

滚动视图。VerticalScrollMode -必须禁用,这样滚动查看器就不会试图将滑动动作解释为向下滚动的命令。

在那之后,滑动到右键就像饼一样容易了。

我明白你的意思了。这似乎有悖常理,对吧?在这种情况下,我倾向于启用单击项并使用单击项来设置所选项。我们发现这对用户来说是最直观的。从这个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工作。

明白了吗?

//杰瑞

最新更新