Search code examples
xamluwpuwp-xamlwinui

UWP Xaml where can I get the dafault style for GridViewItem


When I try to use "Edit style" -> "Edit a copy" option in designer for a GridViewItem, it generates style for GridView and not GridViewItem. So where can I get the default style for GridViewItem? I am looking to modify some of the properties from the default style to change look and feel of GridViewItems.


Solution

  • You can get the default style for GridViewItem in Generic.xaml.

    Here is a way to quickly access to correct version of Generic.xaml. enter image description here

    Select ApplicationPageBackgroundThemeBrushType and type F12, then you will enter correct version of Generic.xaml file quickly. Then search for GridViewItemRevealStyle in the Generic.xaml file, and you will get the correct default style of GridViewItem.

    <Style TargetType="GridViewItem" x:Key="GridViewItemRevealStyle">
        <Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" />
        <Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" />
        <Setter Property="Background" Value="{ThemeResource GridViewItemBackground}" />
        <Setter Property="Foreground" Value="{ThemeResource GridViewItemForeground}" />
        <Setter Property="TabNavigation" Value="Local" />
        <Setter Property="IsHoldingEnabled" Value="True" />
        <Setter Property="HorizontalContentAlignment" Value="Center" />
        <Setter Property="VerticalContentAlignment" Value="Center" />
        <Setter Property="Margin" Value="0,0,4,4" />
        <Setter Property="MinWidth" Value="{ThemeResource GridViewItemMinWidth}" />
        <Setter Property="MinHeight" Value="{ThemeResource GridViewItemMinHeight}" />
        <Setter Property="AllowDrop" Value="False" />
        <Setter Property="UseSystemFocusVisuals" Value="{StaticResource UseSystemFocusVisuals}" />
        <Setter Property="FocusVisualMargin" Value="-2" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="GridViewItem">
                    <ListViewItemPresenter ContentTransitions="{TemplateBinding ContentTransitions}"
                        x:Name="Root"
                        Control.IsTemplateFocusTarget="True"
                        FocusVisualMargin="{TemplateBinding FocusVisualMargin}"
                        SelectionCheckMarkVisualEnabled="{ThemeResource GridViewItemSelectionCheckMarkVisualEnabled}"
                        CheckBrush="{ThemeResource GridViewItemCheckBrush}"
                        CheckBoxBrush="{ThemeResource GridViewItemCheckBoxBrush}"
                        DragBackground="{ThemeResource GridViewItemDragBackground}"
                        DragForeground="{ThemeResource GridViewItemDragForeground}"
                        FocusBorderBrush="{ThemeResource GridViewItemFocusBorderBrush}"
                        FocusSecondaryBorderBrush="{ThemeResource GridViewItemFocusSecondaryBorderBrush}"
                        PlaceholderBackground="{ThemeResource GridViewItemPlaceholderBackground}"
                        PointerOverBackground="{ThemeResource GridViewItemBackgroundPointerOver}"
                        PointerOverForeground="{ThemeResource GridViewItemForegroundPointerOver}"
                        SelectedBackground="{ThemeResource GridViewItemBackgroundSelected}"
                        SelectedForeground="{ThemeResource GridViewItemForegroundSelected}"
                        SelectedPointerOverBackground="{ThemeResource GridViewItemBackgroundSelectedPointerOver}"
                        PressedBackground="{ThemeResource GridViewItemBackgroundPressed}"
                        SelectedPressedBackground="{ThemeResource GridViewItemBackgroundSelectedPressed}"
                        DisabledOpacity="{ThemeResource ListViewItemDisabledThemeOpacity}"
                        DragOpacity="{ThemeResource ListViewItemDragThemeOpacity}"
                        ReorderHintOffset="{ThemeResource GridViewItemReorderHintThemeOffset}"
                        HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
                        VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
                        ContentMargin="{TemplateBinding Padding}"
                        CheckMode="{ThemeResource GridViewItemCheckMode}"
                        RevealBackground="{ThemeResource GridViewItemRevealBackground}"
                        RevealBorderThickness="{ThemeResource GridViewItemRevealBorderThemeThickness}"
                        RevealBorderBrush="{ThemeResource GridViewItemRevealBorderBrush}">
    
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal" />
                                <VisualState x:Name="Selected" />
    
                                <VisualState x:Name="PointerOver">
                                    <VisualState.Setters>
                                        <Setter Target="Root.(RevealBrush.State)" Value="PointerOver" />
                                    </VisualState.Setters>
                                </VisualState>
    
                                <VisualState x:Name="PointerOverSelected">
                                    <VisualState.Setters>
                                        <Setter Target="Root.(RevealBrush.State)" Value="PointerOver" />
                                    </VisualState.Setters>
                                </VisualState>
                                <VisualState x:Name="PointerOverPressed">
                                    <VisualState.Setters>
                                        <Setter Target="Root.(RevealBrush.State)" Value="Pressed" />
                                    </VisualState.Setters>
                                </VisualState>
    
                                <VisualState x:Name="Pressed">
                                    <VisualState.Setters>
                                        <Setter Target="Root.(RevealBrush.State)" Value="Pressed" />
                                    </VisualState.Setters>
                                </VisualState>
    
                                <VisualState x:Name="PressedSelected">
                                    <VisualState.Setters>
                                        <Setter Target="Root.(RevealBrush.State)" Value="Pressed" />
                                    </VisualState.Setters>
                                </VisualState>
    
                            </VisualStateGroup>
    
                            <VisualStateGroup x:Name="DisabledStates">
                                <VisualState x:Name="Enabled" />
    
                                <VisualState x:Name="Disabled">
                                    <VisualState.Setters>
                                        <Setter Target="Root.RevealBorderThickness" Value="0" />
                                    </VisualState.Setters>
                                </VisualState>
    
                            </VisualStateGroup>
    
                        </VisualStateManager.VisualStateGroups>
                    </ListViewItemPresenter>
    
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    

    <Style TargetType="GridViewItem" BasedOn="{StaticResource GridViewItemRevealStyle}" />