将焦点一项一项地移动到 GridView 项上
Move focus on GridView item one by one
我正在为 pc 和 xbox 设计应用程序。现在面临一个棘手的问题。
我有一个 GridView,它启用了一行。所以焦点可以移动left/right。我已经计算了项目的宽度,所以在用户可视区域,总是有4个项目可见。
在我的电脑上,当焦点移动时 left/right,它似乎符合预期。
但是在我的xbox上,当向右移动项目时,项目总是显示一部分。
更清楚,这里有两个视频。
xbox 上的注意事项,当我将焦点移至
,下一项显示其中的一部分。
所以,如何禁用下一项显示了其中的一部分,就像pc一样。当焦点在它上面时,该项目显示。当焦点不在上面时,不显示。
在PreviewKeyDown
事件中,我使用
case VirtualKey.Right:
case VirtualKey.GamepadDPadRight:
case VirtualKey.GamepadLeftThumbstickRight:
if (itemIndexInCurrentRiver + 1 <= currentRiver.Items.Count - 1)
{
currentRiver.Focus(FocusState.Programmatic);
GridViewItem item = new GridViewItem();
item = currentRiver.ContainerFromIndex(listIndexsInEachRiver[riverIndexInAllRivers]) as GridViewItem;
listIndexsInEachRiver[riverIndexInAllRivers] = itemIndexInCurrentRiver + 1;
item.Focus(FocusState.Programmatic);
item.IsSelected = true;
item.StartBringIntoView();
e.Handled = false;
}
else
e.Handled = true;
break;
我查看了你的视频记录,如果你想让 Xbox GridView
显示与 pc 相同,你需要手动关闭过扫描边框。
Xbox 设置 > 显示和声音> 视频输出,在“高级”下 select “视频保真度和过扫描” 您将看到一个选项,上面写着“应用程序可以添加边框”,如果关闭则关闭。
不幸的是,我们没有提供 api 可以通过编程方式关闭。请随意post就UserVoice吧。您也可以为我们分享代码示例,我们将检查是否有其他解决方法。
我正在为 pc 和 xbox 设计应用程序。现在面临一个棘手的问题。
我有一个 GridView,它启用了一行。所以焦点可以移动left/right。我已经计算了项目的宽度,所以在用户可视区域,总是有4个项目可见。
在我的电脑上,当焦点移动时 left/right,它似乎符合预期。 但是在我的xbox上,当向右移动项目时,项目总是显示一部分。
更清楚,这里有两个视频。
xbox 上的注意事项,当我将焦点移至
所以,如何禁用下一项显示了其中的一部分,就像pc一样。当焦点在它上面时,该项目显示。当焦点不在上面时,不显示。
在PreviewKeyDown
事件中,我使用
case VirtualKey.Right:
case VirtualKey.GamepadDPadRight:
case VirtualKey.GamepadLeftThumbstickRight:
if (itemIndexInCurrentRiver + 1 <= currentRiver.Items.Count - 1)
{
currentRiver.Focus(FocusState.Programmatic);
GridViewItem item = new GridViewItem();
item = currentRiver.ContainerFromIndex(listIndexsInEachRiver[riverIndexInAllRivers]) as GridViewItem;
listIndexsInEachRiver[riverIndexInAllRivers] = itemIndexInCurrentRiver + 1;
item.Focus(FocusState.Programmatic);
item.IsSelected = true;
item.StartBringIntoView();
e.Handled = false;
}
else
e.Handled = true;
break;
我查看了你的视频记录,如果你想让 Xbox GridView
显示与 pc 相同,你需要手动关闭过扫描边框。
Xbox 设置 > 显示和声音> 视频输出,在“高级”下 select “视频保真度和过扫描” 您将看到一个选项,上面写着“应用程序可以添加边框”,如果关闭则关闭。
不幸的是,我们没有提供 api 可以通过编程方式关闭。请随意post就UserVoice吧。您也可以为我们分享代码示例,我们将检查是否有其他解决方法。