簡體   English   中英

如何在SplitView窗格UWP中更改選擇顏色?

[英]How to change selection color in SplitView pane UWP?

我需要你的幫助。 我正在開發UWP應用。 現在,我正在漢堡包菜單上,當我選擇一個菜單項時,將其標記為系統重點色 我想使選擇樣式像這樣 -菜單項附近的小矩形或至少更改選擇顏色。 但不幸的是,實際上沒有任何信息可以幫助我。 無論是在StackOverflow上還是其他地方。 所以,請幫幫我。 並預先感謝。 這是我的一段代碼:

<SplitView Name="menu" Grid.Row="1" OpenPaneLength="250" CompactPaneLength="50" DisplayMode="CompactInline" PaneClosed="menu_PaneClosed">
        <SplitView.Pane>
            <RelativePanel>
                <ListBox>
                    <ListBoxItem Name="homeMenu" IsSelected="True">
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Style="{StaticResource ItemIcon}" Text="&#xE10F;"/>
                            <TextBlock Style="{StaticResource MenuItem}" Text="Home"/>
                        </StackPanel>
                    </ListBoxItem>
                    <ListBoxItem Name="gamingMenu">
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Style="{StaticResource ItemIcon}" Text="&#xE7FC;"/>
                            <TextBlock Style="{StaticResource MenuItem}"  Text="Gaming"/>
                        </StackPanel>
                    </ListBoxItem>
                    <ListBoxItem Name="historyMenu">
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Style="{StaticResource ItemIcon}" Text="&#xE81C;"/>
                            <TextBlock Style="{StaticResource MenuItem}"  Text="History"/>
                        </StackPanel>
                    </ListBoxItem>
                    <ListBoxItem Name="likedMenu">
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Style="{StaticResource ItemIcon}" Text="&#xE19F;"/>
                            <TextBlock Style="{StaticResource MenuItem}"  Text="Liked videos"/>
                        </StackPanel>
                    </ListBoxItem>
                    <ListBoxItem Name="watchLaterMenu">
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Style="{StaticResource ItemIcon}" Text="&#xE121;"/>
                            <TextBlock Style="{StaticResource MenuItem}"  Text="Watch later"/>
                        </StackPanel>
                    </ListBoxItem>
                </ListBox>
            </RelativePanel>
        </SplitView.Pane>
        <SplitView.Content>
            <Frame Name="content"/>
        </SplitView.Content>
    </SplitView>

我建議您可以使用ListView控件代替ListBox。 您將獲得相同的效果。 然后,編輯ListViewItem樣式和模板 您會看到其中有一個SelectedBackground="{ThemeResource SystemControlHighlightListAccentLowBrush}" 您可以根據需要更改它。

例如,

<Page.Resources>
    <Style x:Key="ListViewItemContainerStyle1" TargetType="ListViewItem">
        <Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" />
        <Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" />
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundBaseHighBrush}" />
        <Setter Property="TabNavigation" Value="Local"/>
        <Setter Property="IsHoldingEnabled" Value="True"/>
        <Setter Property="Padding" Value="12,0,12,0"/>
        <Setter Property="HorizontalContentAlignment" Value="Left"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="MinWidth" Value="{ThemeResource ListViewItemMinWidth}"/>
        <Setter Property="MinHeight" Value="{ThemeResource ListViewItemMinHeight}"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ListViewItem">
                    <ListViewItemPresenter
      ContentTransitions="{TemplateBinding ContentTransitions}"
      SelectionCheckMarkVisualEnabled="True"
      CheckBrush="{ThemeResource SystemControlForegroundBaseMediumHighBrush}"
      CheckBoxBrush="{ThemeResource SystemControlForegroundBaseMediumHighBrush}"
      DragBackground="{ThemeResource ListViewItemDragBackgroundThemeBrush}"
      DragForeground="{ThemeResource ListViewItemDragForegroundThemeBrush}"
      FocusBorderBrush="{ThemeResource SystemControlForegroundAltHighBrush}"
      FocusSecondaryBorderBrush="{ThemeResource SystemControlForegroundBaseHighBrush}"
      PlaceholderBackground="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}"
      PointerOverBackground="{ThemeResource SystemControlHighlightListLowBrush}"
      PointerOverForeground="{ThemeResource SystemControlHighlightAltBaseHighBrush}"
      SelectedBackground="Red"
      SelectedForeground="{ThemeResource SystemControlHighlightAltBaseHighBrush}"
      SelectedPointerOverBackground="{ThemeResource SystemControlHighlightListAccentMediumBrush}"
      PressedBackground="{ThemeResource SystemControlHighlightListMediumBrush}"
      SelectedPressedBackground="{ThemeResource SystemControlHighlightListAccentHighBrush}"
      DisabledOpacity="{ThemeResource ListViewItemDisabledThemeOpacity}"
      DragOpacity="{ThemeResource ListViewItemDragThemeOpacity}"
      ReorderHintOffset="{ThemeResource ListViewItemReorderHintThemeOffset}"
      HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
      VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
      ContentMargin="{TemplateBinding Padding}"
      CheckMode="Inline"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Page.Resources>
<SplitView Name="menu" Grid.Row="1" OpenPaneLength="250" CompactPaneLength="50" DisplayMode="CompactInline">
    <SplitView.Pane>
        <RelativePanel>
            <ListView ItemContainerStyle="{StaticResource ListViewItemContainerStyle1}">
                <ListViewItem  Name="homeMenu">
                    <StackPanel Orientation="Horizontal">
                        <TextBlock  Text="&#xE10F;"/>
                        <TextBlock Text="Home"/>
                    </StackPanel>
                </ListViewItem>
                <ListViewItem Name="gamingMenu">
                    <StackPanel Orientation="Horizontal">
                        <TextBlock  Text="&#xE7FC;"/>
                        <TextBlock  Text="Gaming"/>
                    </StackPanel>
                </ListViewItem>
                <ListViewItem Name="historyMenu">
                    <StackPanel Orientation="Horizontal">
                        <TextBlock  Text="&#xE81C;"/>
                        <TextBlock   Text="History"/>
                    </StackPanel>
                </ListViewItem>
                <ListViewItem Name="likedMenu">
                    <StackPanel Orientation="Horizontal">
                        <TextBlock  Text="&#xE19F;"/>
                        <TextBlock   Text="Liked videos"/>
                    </StackPanel>
                </ListViewItem>
                <ListViewItem Name="watchLaterMenu">
                    <StackPanel Orientation="Horizontal">
                        <TextBlock  Text="&#xE121;"/>
                        <TextBlock   Text="Watch later"/>
                    </StackPanel>
                </ListViewItem>
            </ListView>
        </RelativePanel>
    </SplitView.Pane>
    <SplitView.Content>
        <Frame Name="content"/>
    </SplitView.Content>
</SplitView>

暫無
暫無

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

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