簡體   English   中英

UWP GridViewItem 選定背景顏色僅更改邊框顏色

[英]UWP GridViewItem Selected Background color only changes the border color

我有這種GridViewItem樣式,我想在其中更改所選項目的背景顏色,而不僅僅是其邊框顏色。 當我對“ListViewItem”執行相同操作時,這可以按預期工作,但在“GridViewItem”中,我正在努力使其工作,無論我設置為“ListViewItemPresenter”的“SelectedBackground”的任何顏色,它都僅適用於它的邊框以某種方式。 我什至嘗試設置“ListViewItemPresenter 的背景屬性,但不知何故 UI 完全忽略了它。

用戶界面

用戶界面

代碼

<Style
                        x:Key="TileGridViewItemStyle"
                        BasedOn="{StaticResource GridViewItemRevealStyle}"
                        TargetType="GridViewItem">
                        <Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" />
                        <Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" />
                        <Setter Property="Background" Value="{ThemeResource SystemAccentColor}" />
                        <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
                                        x:Name="Root"
                                        HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
                                        VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
                                        CheckBoxBrush="{ThemeResource GridViewItemCheckBoxBrush}"
                                        CheckBrush="{ThemeResource GridViewItemCheckBrush}"
                                        CheckMode="{ThemeResource GridViewItemCheckMode}"
                                        ContentMargin="{TemplateBinding Padding}"
                                        ContentTransitions="{TemplateBinding ContentTransitions}"
                                        Control.IsTemplateFocusTarget="True"
                                        DisabledOpacity="{ThemeResource ListViewItemDisabledThemeOpacity}"
                                        DragBackground="{ThemeResource GridViewItemDragBackground}"
                                        DragForeground="{ThemeResource GridViewItemDragForeground}"
                                        DragOpacity="{ThemeResource ListViewItemDragThemeOpacity}"
                                        FocusBorderBrush="{ThemeResource GridViewItemFocusBorderBrush}"
                                        FocusSecondaryBorderBrush="{ThemeResource GridViewItemFocusSecondaryBorderBrush}"
                                        FocusVisualMargin="{TemplateBinding FocusVisualMargin}"
                                        PlaceholderBackground="{ThemeResource GridViewItemPlaceholderBackground}"
                                        PointerOverBackground="{ThemeResource GridViewItemBackgroundPointerOver}"
                                        PointerOverForeground="{ThemeResource GridViewItemForegroundPointerOver}"
                                        PressedBackground="{ThemeResource GridViewItemBackgroundPressed}"
                                        ReorderHintOffset="{ThemeResource GridViewItemReorderHintThemeOffset}"
                                        RevealBackground="{ThemeResource GridViewItemRevealBackground}"
                                        RevealBorderBrush="{ThemeResource GridViewItemRevealBorderBrush}"
                                        RevealBorderThickness="{ThemeResource GridViewItemRevealBorderThemeThickness}"
                                        SelectedBackground="{ThemeResource SystemBaseHighColor}"
                                        SelectedForeground="{ThemeResource GridViewItemForegroundSelected}"
                                        SelectedPointerOverBackground="{ThemeResource GridViewItemBackgroundSelectedPointerOver}"
                                        SelectedPressedBackground="{ThemeResource GridViewItemBackgroundSelectedPressed}"
                                        SelectionCheckMarkVisualEnabled="{ThemeResource GridViewItemSelectionCheckMarkVisualEnabled}">
                                        <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>

我可以通過在“ListViewItemPresenter”的“選定”state 中放置一個設置器並在那里設置顏色來找到解決它的方法。

<VisualState x:Name="Selected">
     <VisualState.Setters>
          <Setter Target="Root.RevealBackground" Value="White" />
     </VisualState.Setters>
</VisualState>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM