NavigationView 窗格背景

NavigationView Pane background

如何更改 NavigationView 窗格的背景??

我正在尝试这种方式:

<NavigationView.Background>
   <LinearGradientBrush EndPoint="0.5,0" StartPoint="0.5,1">
      <GradientStop Color="#b1c899" Offset="0"/>
      <GradientStop Color="#18c1b9" Offset="1"/>
   </LinearGradientBrush>
</NavigationView.Background>

但似乎有“acrylic”我无法删除,以及更改Header的背景颜色。

自定义 UI 的可能选项之一是覆盖以下两个主题资源:NavigationViewDefaultPaneBackgroundNavigationViewExpandedPaneBackground

您通常会修改这两个资源以自定义 Acrylic Brush 的外观,方法是按以下方式覆盖它们:

<AcrylicBrush x:Key="NavigationViewDefaultPaneBackground"
              BackgroundSource="Backdrop" TintColor="Blue" TintOpacity=".6"/>

我认为可以简单地定义 SolidColorBrush 而不是 AcrylicBrush,因此将亚克力背景更改为纯色,并完全移除亚克力来自 NavigationView 窗格。

<SolidColorBrush x:Key="NavigationViewExpandedPaneBackground" Color="Red"/>
<SolidColorBrush x:Key="NavigationViewDefaultPaneBackground" Color="Red" />

我想补充一下 Andre 的回答,也可以更改顶部窗格背景 属性:

<NavigationView.Resources>
    <SolidColorBrush x:Key="NavigationViewTopPaneBackground" Color="Red" />
</NavigationView.Resources>

正如 Nathan 在评论中指出的那样,可自定义的颜色甚至更多。您可以在这里查看它们:

https://github.com/Microsoft/microsoft-ui-xaml/blob/master/dev/NavigationView/NavigationView_rs2_themeresources.xaml