NavigationViewItem 不居中

问题描述

我想制作一个类似于 Microsoft Store 的导航视图。

Microsoft Store

到目前为止,我已经做到了。

My App

但是有两个问题。

  1. 图标和文本未居中。
  2. 选择指示器非常小。

我该如何解决这个问题。这是我的 xaml。

<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Torrent"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
xmlns:Custom="using:System.Numerics"
x:Class="Torrent.MainPage"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">


<muxc:NavigationView 
    x:Name="nvSample"
    IsBackButtonVisible="Collapsed" IsPanetoggleButtonVisible="False" PanedisplayMode="LeftCompact" CompactPaneLength="80" FontSize="24" >

    <muxc:NavigationView.MenuItems>
        <!--<muxc:NavigationViewItem Icon="Play" Content="Menu Item1" Tag="SamplePage1" />-->
        <muxc:NavigationViewItem Tag="SamplePage1" Height="80" BackgroundSizing="OuterBorderEdge">
            <StackPanel HorizontalAlignment="Center">
                <TextBlock Text="&#xE138;" FontFamily="Segoe Fluent Icons" FontSize="26" HorizontalAlignment="Center" />
                <TextBlock Text="All" HorizontalAlignment="Center" />
            </StackPanel>
        </muxc:NavigationViewItem>
    </muxc:NavigationView.MenuItems>

    <Frame x:Name="contentFrame"/>
</muxc:NavigationView>

解决方法

一个简单的解决方法是为 StackPanel 使用负的左边距:

<NavigationViewItem Tag="SamplePage1" Height="80" BackgroundSizing="OuterBorderEdge">
    <StackPanel HorizontalAlignment="Center" Margin="-5 0 0 0">
        <TextBlock Text="&#xE138;" ... />
        ...

您可以根据您的要求和大小调整值(上面示例标记中的 -5)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...