UWP在Gridview中移除焦点边框

时间:2016-10-26 13:23:22

标签: c# xaml gridview uwp uwp-xaml

我是通用Windows平台(UWP)和XAML的新手。

我有一个显示垂直堆叠数据的GridView。这工作正常,但当我按住GridView.ItemTemplate / DataTemplate之一时,我得到一个灰色边框:

Pressing and holding a DataTemplate

我试图将这些属性放在各种项目上,但没有成功:

FocusVisualPrimaryThickness="0" 
FocusVisualSecondaryThickness="0" 
FocusVisualPrimaryBrush="Black" 
FocusVisualSecondaryBrush="Black" 
FocusVisualMargin="0"

我也注意到这些属性。这是否意味着它尚未实施?:

TBD

这是我的代码:

<GridView x:Name="IconGridView"
                  Canvas.ZIndex="2"
                  Grid.Row="0"
                  Margin="398,728,402,107"
                  ItemClick="Clicked_On_Video_Preview_Image"
                  IsItemClickEnabled="True"
                  IsSwipeEnabled="True"
                  ItemsSource="{x:Bind _videoItems}"
                  ScrollViewer.HorizontalScrollBarVisibility="Auto"
                  ScrollViewer.HorizontalScrollMode="Enabled"
                  ScrollViewer.VerticalScrollMode="Disabled"
                  BorderThickness="0"  
                  SelectionMode="None"
                  BorderBrush="Black"
                  Background="Black" IsHoldingEnabled="False">

            <GridView.ItemsPanel>
                <ItemsPanelTemplate>
                    <ItemsWrapGrid Orientation="Vertical" Background="Black" />
                </ItemsPanelTemplate>
            </GridView.ItemsPanel>

            <GridView.ItemTemplate>
                <DataTemplate x:DataType="model:VideoItem">
                    <StackPanel Margin="30,0,30,0" HorizontalAlignment="Center" BorderThickness="0" BorderBrush="Black" Background="Black" Height="245">
                        <Grid>
                            <Border Name="PreviewBorder" BorderThickness="2" BorderBrush="#000000" Margin="0,55,0,55">
                                <Image Height="135" Width="240" Source="{x:Bind ThumbnailFilename}" Loaded="Video_Preview_Loaded" Stretch="UniformToFill" />
                            </Border>
                            <Image Margin="0,55,0,55" Height="29" Width="29" Source="Assets/play_vit.png" />
                            <TextBlock Margin="0,185,0,0" Text="{x:Bind Title}" CharacterSpacing="200" TextWrapping="WrapWholeWords" TextAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="12" Foreground="white" Width="240" Height="45"/>
                        </Grid>
                    </StackPanel>
                </DataTemplate>
            </GridView.ItemTemplate>
        </GridView>

1 个答案:

答案 0 :(得分:0)

当用户使用TAB键更改聚焦元素时,这是为每个GridViewItem显示的焦点视觉效果。您可以移除焦点视觉效果,但它现在使您的应用程序不易访问,因为人们无法使用键盘来浏览您的UI(并且叙述者无法读出焦点项目)。

<GridView.ItemContainerStyle>
    <Style TargetType="GridViewItem">
        <Setter Property="IsTabStop" Value="False" />
    </Style>
</GridView.ItemContainerStyle>

相反,如果要更改焦点视觉的外观,则需要在每个GridViewItem上设置Focus*属性:

<GridView.ItemContainerStyle>
    <Style TargetType="GridViewItem">
        <Setter Property="FocusVisualPrimaryBrush" Value="Red" />
        <Setter Property="FocusVisualSecondaryBrush" Value="Blue" />
        <!-- etc -->
    </Style>
</GridView.ItemContainerStyle>