【问题标题】:UWP NavigationView changes titlebar backgroundUWP NavigationView 更改标题栏背景
【发布时间】:2021-11-18 05:57:03
【问题描述】:

我在 UWP 上使用 WinUI 2.7,在我的 XAML 上我有以下代码:

<Grid Background="{ThemeResource AcrylicBackgroundFillColorDefaultBrush}" ColumnSpacing="10.0">

    <muxc:NavigationView
        x:Name="NavigationView"
        HorizontalContentAlignment="Left"
        IsBackButtonVisible="Collapsed"
        PaneDisplayMode="LeftMinimal"
        SelectionChanged="SelectionChanged">
        <muxc:NavigationView.MenuItems>
            <muxc:NavigationViewItem
                Content="Main Page"
                Icon="Home"
                Tag="MainPage" />
        </muxc:NavigationView.MenuItems>

        <Frame x:Name="MainFrame" Margin="0,0,0,0" />

    </muxc:NavigationView>


</Grid>

在我的 C# 上,我有这段代码可以使标题栏透明

public MainPage()
    {
        this.InitializeComponent();

        var coreTitleBar = CoreApplication.GetCurrentView().TitleBar; 
        coreTitleBar.ExtendViewIntoTitleBar = true;

        var view = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView(); 
        view.TitleBar.ButtonBackgroundColor = Windows.UI.Colors.Transparent;
        view.TitleBar.ButtonInactiveBackgroundColor = Windows.UI.Colors.Transparent;

        
    }

这里的问题是,如果启用了NavigationView,那么Titlebar和页面的内容会有一点不同color

但如果我注释掉 NavigationView,这是fixed

我发现更改标题栏颜色的唯一方法是使用 NavigationView 的背景属性,但即使通过设置 {ThemeResource AcrylicBackgroundFillColorDefaultBrush} 我无法让它与页面的其余部分具有相同的颜色

有没有一种方法可以让所有东西都使用完全相同的背景颜色?

【问题讨论】:

    标签: c# xaml uwp winui


    【解决方案1】:

    请参考此documentNavigationView 包含 IsTitleBarAutoPaddingEnabled 属性,您可以将其设置为 false 以将完整的 NavigationView 扩展到标题栏。更多详情请参考document

    <muxc:NavigationView IsTitleBarAutoPaddingEnabled="False"/>
    

    【讨论】:

      猜你喜欢
      • 2021-02-11
      • 1970-01-01
      • 2013-10-07
      • 2010-11-19
      • 2018-08-09
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多