Uno Platform:移除NavigationView右侧多余间距问题求助
问题原因
NavigationView 在 PaneDisplayMode="Top" 模式下,默认会拉伸至父容器的全部宽度,且内部布局会为隐藏的返回按钮、设置按钮预留空间,导致设置 HorizontalAlignment="Center" 无法生效,右侧出现多余空白。
解决方法
通过以下调整让控件居中并消除右侧多余间距:
- 设置
Width="Auto":让控件仅包裹自身内容,而非撑满父容器,这样HorizontalAlignment="Center"才能生效。 - 添加
HorizontalContentAlignment="Center":确保内部菜单选项也居中对齐。
修改后的完整代码:
<NavigationView Background="Red" PaneDisplayMode="Top" IsSettingsVisible="False" Grid.Row="1" HorizontalAlignment="Center" IsBackButtonVisible="Collapsed" Width="Auto" HorizontalContentAlignment="Center"> <NavigationView.MenuItems> <NavigationViewItem Content="Home" Tag="SamplePage1" Icon="Library"/> <NavigationViewItem Content="Search" Tag="SamplePage5" Icon="Shop" /> <NavigationViewItem Content="Search" Tag="SamplePage5" Icon="Shop" /> <NavigationViewItem Content="Search" Tag="SamplePage5" Icon="Shop"/> </NavigationView.MenuItems> </NavigationView>
进阶处理(若仍有多余间距)
如果上述设置后右侧仍有空白,可提取并修改 NavigationView 的默认模板,移除为隐藏控件预留的右侧布局区域。Uno Platform 的 NavigationView 模板与 UWP 兼容,可通过开发工具的「提取模板」功能获取后调整 TopPaneGrid 的布局逻辑,删除多余的占位元素。
内容的提问来源于stack exchange,提问作者Denis_LT
相关产品推荐
相关产品推荐

