如何更改 NavigationView 标题的高度?

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

Header Screenshot

如何减少图片中显示的标题文本上方和下方的空间。我看到它来自标头的 DataTemplate,但我没有得到它。另外https://learn.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.navigationview.header?view=winrt-22621并没有真正的帮助。我还想知道如何将一行中的标题文本与下面的蓝色内容区域对齐。

<NavigationView
            x:Name="NavigationViewControl"
            Canvas.ZIndex="0"
            IsBackButtonVisible="Visible"
            IsBackEnabled="{x:Bind ViewModel.IsBackEnabled, Mode=OneWay}"
            SelectedItem="{x:Bind ViewModel.Selected, Mode=OneWay}"
            IsSettingsVisible="True"
            ExpandedModeThresholdWidth="1280"
            DisplayModeChanged="NavigationViewControl_DisplayModeChanged"
            OpenPaneLength="160"
            IsPaneOpen="False"
            Header="{x:Bind ((ContentControl)ViewModel.Selected).Content, Mode=OneWay}">
            <NavigationView.MenuItems>
                <NavigationViewItem Content="Dashboard" helpers:NavigationHelper.NavigateTo="App.ViewModels.DashboardViewModel" Icon="Home" ></NavigationViewItem>
            </NavigationView.MenuItems>
            <NavigationView.HeaderTemplate>
                <DataTemplate>
                    <Grid>
                        <TextBlock
                            Text="{Binding}"
                            Style="{ThemeResource TitleTextBlockStyle}" />
                    </Grid>
                </DataTemplate>
            </NavigationView.HeaderTemplate>
            <i:Interaction.Behaviors>
                <behaviors:NavigationViewHeaderBehavior
                    DefaultHeader="{x:Bind ((ContentControl)ViewModel.Selected).Content, Mode=OneWay}">
                    <behaviors:NavigationViewHeaderBehavior.DefaultHeaderTemplate>
                        <DataTemplate>
                            <Grid>
                                <TextBlock
                                    Text="{Binding}"
                                    Style="{ThemeResource TitleTextBlockStyle}" />
                            </Grid>
                        </DataTemplate>
                    </behaviors:NavigationViewHeaderBehavior.DefaultHeaderTemplate>
                </behaviors:NavigationViewHeaderBehavior>
            </i:Interaction.Behaviors>
            <Frame x:Name="NavigationFrame" Grid.Row="2" Background="{ThemeResource SystemAccentColorLight2}" Padding="3" CornerRadius="8"/>
</NavigationView>
xaml winui-3 winui
1个回答
2
投票

您需要覆盖此资源:

<Thickness x:Key="NavigationViewHeaderMargin">56,44,0,0</Thickness>

您可以将其覆盖为

Page
资源:

<Page>
    <Page.Resources>
        <Thickness x:Key="NavigationViewHeaderMargin">0,0,0,0</Thickness>
    </Page.Resources>
    <NavigationView />
</Page>

或在您的

NavigationView
内:

<NavigationView>
    <NavigationView.Resources>
        <Thickness x:Key="NavigationViewHeaderMargin">0,0,0,0</Thickness>
    </NavigationView.Resources>
</NavigationView>

您可以看到

NavigationViewHeaderMargin
generic.xaml 中的实际使用方式。

© www.soinside.com 2019 - 2024. All rights reserved.