Как изменить цвет PaneToggleButton в UWP NavigationView? - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь изменить цвет кнопки гамбургера в NavigationView.Я могу изменить цвета элементов NavigationViewItem и кнопок, но приведенный ниже код не меняет PaneToggleButton.

<Page.Resources>
        <Style TargetType="controls:NavigationViewItem">
            <Setter Property="Foreground" Value="White"/>
        </Style>
        <Style TargetType="Button">
            <Setter Property="Foreground" Value="White"/>
        </Style>
 </Page.Resources>

Пересмотренный код ниже исправил проблему

 <controls:NavigationView.Resources>
     <SolidColorBrush x:Key="NavigationViewItemForeground" Color="White"/>
     <SolidColorBrush x:Key="NavigationViewItemForegroundPointerOver"Color="Yellow"/>
     <SolidColorBrush x:Key="NavigationViewItemForegroundPressed"Color="LightGreen"/>
     <SolidColorBrush x:Key="NavigationViewItemForegroundSelected"Color="White"/>
     <SolidColorBrush x:Key="NavigationViewItemForegroundSelectedPointerOver" Color="Orange"/>
     <SolidColorBrush x:Key="NavigationViewItemForegroundSelectedPressed" Color="Pink"/>
 </controls:NavigationView.Resources>

 <controls:NavigationView.PaneToggleButtonStyle>
     <Style TargetType="Button" BasedOn="{StaticResource PaneToggleButtonStyle}">
          <Setter Property="Foreground" Value="White"/>
      </Style>
  </controls:NavigationView.PaneToggleButtonStyle>

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Это сработало для меня

<Page.Resources>
    <Style x:Key="CustomNavigationMenuStyle" TargetType="Button" BasedOn="{StaticResource PaneToggleButtonStyle}">
        <Setter Property="Foreground" Value="#C21334" />
    </Style>
</Page.Resources>

 <NavigationView x:Name="nvMainLevelNavigation"                     
                PaneDisplayMode="LeftMinimal" 
                IsSettingsVisible="false"
                Header="Title"
                PaneToggleButtonStyle="{StaticResource CustomNavigationIconStyle}"
                ItemInvoked="nvMainLevelNavigation_ItemInvoked"
                SelectionChanged="nvMainLevelNavigation_SelectionChanged"
                Loaded="nvMainLevelNavigation_Loaded">
 </NavigationView>
0 голосов
/ 25 сентября 2018

Откройте ваш проект в Blend и в конструкторе выберите NavigationView , затем выберите опцию для редактирования стиля PaneToggleButton там вы можете редактировать стилькнопки переключения и внесите любые необходимые изменения, включая изменение ForeGround , затем назначьте этот стиль для NavigationView следующим образом:

<NavigationView PaneToggleButtonStyle="{StaticResource styleResourceKey}"/>

Для целей проектирования универсальный.xaml доступен в папке (Program Files) \ Windows Kits \ 10 \ DesignTime \ CommonConfiguration \ Neutral \ UAP \ 10.0.10586.0 \ Общая папка из установки Windows SDK.

Вы можетенайдите в этом файле PaneToggleButtonStyle , поэтому, если вы не хотите использовать blend, просто найдите этот стиль в этом файле и скопируйте его, вставьте в свой проект, а затем отредактируйте его по своему усмотрению и примените к навигации.вид.

...