首页 > 解决方案 > NavigationView.PaneDisplayMode 仅在调整应用程序窗口大小后更改 UI

问题描述

我有一个带有 MainPage.xaml 的简单测试应用程序,如下所示:

<NavigationView x:Name="MainPageNavigationView"
                Style="{StaticResource MainPageNavigationViewStyle}"
                ItemInvoked="MainPageNavigationView_ItemInvoked"
                Loaded="MainPageNavigationView_Loaded">

    <NavigationView.MenuItems>
        <NavigationViewItem Icon="Home" Tag="Home_Page">
            <TextBlock Tag="Home_Page">Home</TextBlock>
        </NavigationViewItem>
    </NavigationView.MenuItems>

</NavigationView>

在资源字典中,我定义了 NavigationViews 样式,如下所示:

<Style TargetType="NavigationView" x:Key="MainPageNavigationViewStyle">
    <Setter Property="IsBackButtonVisible" Value="Collapsed" />
    <Setter Property="PaneDisplayMode" Value="LeftCompact" />
    <Setter Property="IsSettingsVisible" Value="False" />
    <Setter Property="IsBackEnabled" Value="False" />
</Style>

我的问题是,当我从 Visual Studio 以调试模式启动应用程序,或者将其部署到我的机器并运行它时,PaneDisplayMode 设置只有在我调整窗口大小后才会启动。但据我了解,应用程序应该从已处于配置状态的 NavigationView 开始。

我在这里有什么明显的遗漏吗?

标签: xamluwp

解决方案


如果你想在NavigationView加载时关闭它,你IsPaneOpen可以False<Style>.

<Style TargetType="NavigationView" x:Key="MainPageNavigationViewStyle">
    ...
    <Setter Property="IsPaneOpen" Value="False"/>
    ...
</Style>

此致。


推荐阅读