2017-07-31 63 views
1

我有一個使用DataTemplate提供UI的GridView,以便用戶可以管理對數據服務的訂閱。 DataTemplate包含文本和圖像以及Button和ToggleButton。在移動和桌面上使用此功能,用戶可以點擊或單擊控件中的按鈕。在桌面上,您甚至可以在控件中選擇Tab並選擇按鈕。但是,在Xbox上,我只能關注每個DataTemplate項目,我無法將其專注於內部按鈕,是否有辦法解決此問題,而無需在Xbox上啓用鼠標模式?GridView的DataTemplate中的焦點控制

<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

所以當你瀏覽,它完全忽略了裏面的按鈕,或者你看不到任何可視聚焦? –

+0

焦點視覺是圍繞外框(基本上是網格),並且您不能使用控制器將焦點移動到按鈕內部,只能移動到下一個數據平臺等。 –

+0

這可能是一個長鏡頭,但我認爲您可以嘗試先啓用'GridView'上的'IsFocusEngagementEnabled',然後在'GridViewItem'樣式中將'IsTabStop'設置爲'False'。 –

回答

2

通過改變GridView.ItemContainerStyle的方式解決:

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