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