2017-07-31 6 views
1

J'ai un GridView qui utilise un DataTemplate pour fournir une interface utilisateur afin que les utilisateurs puissent gérer les abonnements à un service de données. Le DataTemplate contient du texte et une image ainsi qu'un bouton et un ToggleButton. En utilisant cela sur Mobile et Desktop, l'utilisateur peut appuyer ou cliquer sur les boutons dans le contrôle. Sur le bureau, vous pouvez même Tab dans le contrôle et sélectionnez les boutons. Cependant, sur Xbox, je ne peux me concentrer que sur chaque élément de DataTemplate, je n'arrive pas à me concentrer sur les boutons à l'intérieur, y a-t-il un moyen de contourner cela sans activer le mode souris sur la Xbox?Contrôle de mise au point dans DataTemplate de GridView

<DataTemplate x:Key="DataTemplate1"> 
     <Grid Background="#33FFFFFF"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="100"/> 
       <ColumnDefinition Width="*"/> 
      </Grid.ColumnDefinitions> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="*"/> 
       <RowDefinition Height="*"/> 
       <RowDefinition Height="*"/> 
      </Grid.RowDefinitions> 
      <Image HorizontalAlignment="Center" Height="100" VerticalAlignment="Center" Width="80" Source="{Binding TEAMID, Converter={StaticResource uriConverter}}" Grid.RowSpan="3"/> 
      <TextBlock HorizontalAlignment="Center" TextWrapping="Wrap" Text="{Binding TEAMNAME}" VerticalAlignment="Top" Grid.Column="1"/> 
      <Button Content="Unsubscribe" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="1" Grid.Column="1" Tag="{Binding TEAMID}" Tapped="Button_Tapped"/> 
      <ToggleButton x:Name="subscribe_tb" Content="&#xE840;" HorizontalAlignment="Center" FontFamily="Segoe MDL2 Assets" Tag="{Binding TEAMID}" IsChecked="{Binding isPinned}" Grid.Row="3" Grid.Column="1" Unchecked="subscribe_tb_Unchecked" Checked="subscribe_tb_Checked"/> 
     </Grid> 
</DataTemplate> 
+0

Alors, quand vous naviguez, il a tout simplement ignoré les boutons à l'intérieur, ou vous ne pouvez pas voir tout foyer visuel? –

+0

Le focus visuel est autour de la boîte extérieure (la grille essentiellement) et vous ne pouvez pas déplacer la mise au point en utilisant le contrôleur pour les boutons à l'intérieur, seulement au datatemplateitem suivant –

+0

Ceci est probablement un plan long mais je pense que vous pouvez essayer d'abord 'IsFocusEngagementEnabled' sur votre' GridView', puis en définissant 'IsTabStop' sur' False' dans votre style 'GridViewItem'. –

Répondre

2

résolu en changeant le style des GridView.ItemContainerStyle:

<GridView.ItemContainerStyle> 
       <Style TargetType="GridViewItem"> 
        <Setter Property="IsFocusEngagementEnabled" Value="True"/> 
        <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
       </Style> 
</GridView.ItemContainerStyle>