UWP - 防止NavigationViewItemHeader被剪裁

Alb*_*nek 2 c# clip uwp

我正在编写一个NavigationView包含NavigationViewItemHeaders 的UWP应用程序:

   <NavigationView.MenuItems>
        <NavigationViewItem Content="Home" Tag="home">
            <NavigationViewItem.Icon>
                <FontIcon Glyph="&#xE80F;"/>
            </NavigationViewItem.Icon>
        </NavigationViewItem>

        <NavigationViewItemSeparator/>
        <NavigationViewItemHeader x:Name="ThemesHeading" Content="Themes"/>

        <NavigationViewItem Content="Themes" Tag="themes">
            <NavigationViewItem.Icon>
                <FontIcon Glyph="&#xE771;"/>
            </NavigationViewItem.Icon>
        </NavigationViewItem>
Run Code Online (Sandbox Code Playgroud)

(等等)

但是,当我折叠视图时,标题会被剪切:

我该怎么做才能防止这种情况发生?

A. *_*lto 9

解决方案1

增加项目标题的左边距:

<NavigationViewItemHeader Content="Themes" Margin="33,0,0,0"/>
...
<NavigationViewItemHeader Content="Builds" Margin="33,0,0,0"/>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

解决方案2

NavigationView通过设置CompactModeThresholdWidthExpandedModeThresholdWidth一些大数字来禁用紧凑和扩展显示模式:

<NavigationView CompactModeThresholdWidth="100000" ExpandedModeThresholdWidth="100000">
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

解决方案3

Visibility项目标题的IsPaneOpen属性绑定到NavigationViewasAndréB建议的属性,仅使用x:Bind而不是Binding因为它不需要转换器:

<NavigationView Name="MyNavigationView">
    ...
            <NavigationViewItemHeader Content="Themes" Visibility="{x:Bind MyNavigationView.IsPaneOpen, Mode=OneWay}"/>
    ...
            <NavigationViewItemHeader Content="Builds" Visibility="{x:Bind MyNavigationView.IsPaneOpen, Mode=OneWay}"/>
    ...
</NavigationView>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述