为什么 XYFocus 对于 xbox uwp 应用程序工作不正确?
Why XYFocus working incorrect for xbox uwp app?
我为 xbox 创建了 uwp 应用程序,我尝试使用 XYFocus 属性 设置导航顺序,以便使用游戏手柄进行导航。但它的工作不正确。
当我尝试导航 btn2->btn1 时,tabviewitem2 获得焦点。或者当我尝试导航 btn3->btn2 时,tabviewitem3 获得焦点。
简化代码:
<Grid x:Name="RootElement">
<uicontrols:TabView x:Name="TabView">
<uicontrols:TabViewItem Header="1"></uicontrols:TabViewItem>
<uicontrols:TabViewItem Header="2">
<Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button x:Name="btn1"
Grid.Column="0"
Content="1"
XYFocusRight="{x:Bind btn2}"
XYFocusRightNavigationStrategy="Projection"/>
<Button x:Name="btn2"
Grid.Column="1"
Content="2"
XYFocusLeft="{x:Bind btn1}"
XYFocusRight="{x:Bind btn3}"
XYFocusLeftNavigationStrategy="Projection"
XYFocusRightNavigationStrategy="Projection"/>
<Button x:Name="btn3"
Grid.Column="2"
Content="3"
XYFocusLeft="{x:Bind btn2}"
XYFocusDown="{x:Bind lv}"
XYFocusRight="{x:Bind lv}"
XYFocusLeftNavigationStrategy="Projection"
XYFocusDownNavigationStrategy="Projection"/>
</Grid>
<ListView x:Name="lv"></ListView>
</Grid>
</uicontrols:TabViewItem>
<uicontrols:TabViewItem Header="3"></uicontrols:TabViewItem>
<uicontrols:TabViewItem Header="4"></uicontrols:TabViewItem>
</uicontrols:TabView>
</Grid>```
我解决了我的问题。我使用 Microsoft.UI.Xaml 2.7.0 中的 TabView 而不是 Microsoft.Toolkit.Uwp.UI.Controls。可能是 TabView 的 Toolkit 库中的错误。
我为 xbox 创建了 uwp 应用程序,我尝试使用 XYFocus 属性 设置导航顺序,以便使用游戏手柄进行导航。但它的工作不正确。
当我尝试导航 btn2->btn1 时,tabviewitem2 获得焦点。或者当我尝试导航 btn3->btn2 时,tabviewitem3 获得焦点。
简化代码:
<Grid x:Name="RootElement">
<uicontrols:TabView x:Name="TabView">
<uicontrols:TabViewItem Header="1"></uicontrols:TabViewItem>
<uicontrols:TabViewItem Header="2">
<Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button x:Name="btn1"
Grid.Column="0"
Content="1"
XYFocusRight="{x:Bind btn2}"
XYFocusRightNavigationStrategy="Projection"/>
<Button x:Name="btn2"
Grid.Column="1"
Content="2"
XYFocusLeft="{x:Bind btn1}"
XYFocusRight="{x:Bind btn3}"
XYFocusLeftNavigationStrategy="Projection"
XYFocusRightNavigationStrategy="Projection"/>
<Button x:Name="btn3"
Grid.Column="2"
Content="3"
XYFocusLeft="{x:Bind btn2}"
XYFocusDown="{x:Bind lv}"
XYFocusRight="{x:Bind lv}"
XYFocusLeftNavigationStrategy="Projection"
XYFocusDownNavigationStrategy="Projection"/>
</Grid>
<ListView x:Name="lv"></ListView>
</Grid>
</uicontrols:TabViewItem>
<uicontrols:TabViewItem Header="3"></uicontrols:TabViewItem>
<uicontrols:TabViewItem Header="4"></uicontrols:TabViewItem>
</uicontrols:TabView>
</Grid>```
我解决了我的问题。我使用 Microsoft.UI.Xaml 2.7.0 中的 TabView 而不是 Microsoft.Toolkit.Uwp.UI.Controls。可能是 TabView 的 Toolkit 库中的错误。