UWP XAML NavigationMenu更改样式

时间:2018-01-15 11:43:43

标签: c# xaml uwp

如何更改XAML中NavigationView的样式?

默认情况下,Minimal模式有AlwaysShowHeader="True",但我想将其设置为AlwaysShowHeader="False"

这不起作用:

<NavigationView
    x:Name="MyNavigationMenu"
    AlwaysShowHeader="False" >

1 个答案:

答案 0 :(得分:2)

简单解决方案

你可以通过让begin HeaderTemplate为空来隐藏它,但是你也可以轻易地设置标题

DataTemplate

Simple solution

更好的解决方案

要使内部内容流入标题区域,您还必须修改默认模板。你可以在里面找到以下内容:

<NavigationView
   x:Name="MyNavigationMenu"
   Header="Hello World!"
   AlwaysShowHeader="False">
    <NavigationView.HeaderTemplate>
        <DataTemplate />
    </NavigationView.HeaderTemplate>
    <TextBlock Text="Inner content" />
</NavigationView>

注意<ContentControl x:Name="HeaderContent" ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" HorizontalContentAlignment="Stretch" IsTabStop="False" MinHeight="48" VerticalContentAlignment="Stretch"/> 属性。这会导致标头始终占用至少48个有效像素。如果您未设置任何MinHeight="48",则Header模式下仍会占用48个像素。要解决此问题,只需完全删除此属性即可。

当然,现在您必须确保您的内容知道在Minimal模式下可能有上面的汉堡菜单按钮,并且您必须在适当的时候添加一些Minimal

Better solution, content flows into the header area

完成更新的样式

Margin