WinUI 更改了 NavigationView 内容背景

问题描述 投票:0回答:2

我正在尝试更改 NavigationView 框架或内容的背景。

我将背景设置为 Acrylic,NavigatioView 中的 Frame 与窗格中的 NavigatioViewItem 的颜色不同。

我将背景设置为

MainWindow.xaml
,当我导航到具有透明背景的常规页面时,它效果很好。

如何将其更改为像页面背景一样全透明?

Here is a screenshot. how can i change the frame to be like the pane?

c# xaml winui-3 navigationview winui
2个回答
2
投票

让我向您展示一种使用 SystemBackdrop 来执行此操作的方法:

首先,将

SystemBackdrop
设置在
MainWindow
上。

MainWindow.xaml

<Window ...>
    <Window.SystemBackdrop>
        <DesktopAcrylicBackdrop />
    </Window.SystemBackdrop>
    ...
</Window>

然后在每个页面上,将

Background
设置为
Transparent
或将其删除。

<Page Background="Transparent" ...>

您可能还想覆盖

NavigationView
的这些后台资源:

<Page.Resources>
    <SolidColorBrush
        x:Key="NavigationViewDefaultPaneBackground"
        Color="Transparent" />
    <SolidColorBrush
        x:Key="NavigationViewExpandedPaneBackground"
        Color="Transparent" />
    <SolidColorBrush
        x:Key="NavigationViewContentBackground"
        Color="Transparent" />
</Page.Resources>

<NavigationView ...>

您可以在 generic.xaml 文件上了解这些资源。


1
投票

所以,我从另一个网站找到了与我的问题无关的答案,但它有效。

只需在

App.xaml
资源或Page、Grid、NavigationView资源中添加以下代码即可:

<SolidColorBrush x:Key="NavigationViewContentBackground" Color="Transparent" />
© www.soinside.com 2019 - 2024. All rights reserved.