You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP中如何将自定义SplitView添加至根元素且保留原有UI?

UWP中实现全局Overlay式SplitView(替代SettingsPage)的解决方案

要让你的SplitView成为覆盖整个窗口的根元素同时保留原有UI,核心思路是将原有窗口根内容迁移到SplitView的Content区域,再把SplitView设为新的窗口根内容,具体步骤如下:

  1. 先捕获当前窗口的原有根内容,避免丢失:
var originalRootContent = Window.Current.Content;
  1. 初始化你的SplitView(保留你原有的配置):
SplitView splitView = new SplitView();
splitView.Name = "FavoriteSplitView";
splitView.DisplayMode = SplitViewDisplayMode.Overlay;
splitView.IsPaneOpen = true;
splitView.OpenPaneLength = 300;
splitView.PanePlacement = SplitViewPanePlacement.Right;
splitView.CompactPaneLength = 0;
  1. 将原有UI作为SplitView的主内容,同时设置自定义面板:
// 原有UI成为SplitView的主显示区域
splitView.Content = originalRootContent;
// 绑定你的自定义设置面板
splitView.Pane = new FavoriteControl();
  1. 把SplitView设为窗口的新根内容:
Window.Current.Content = splitView;

关键说明

  • 这种方式不会破坏原有应用的导航栈或UI状态,因为原来的根元素(通常是Frame)只是被嵌套到SplitView中,而非替换。
  • 确保这段代码只执行一次(比如在App.xaml.cs的OnLaunched方法后期,或者首次打开设置面板时),避免重复替换导致UI异常。
  • 如果需要动态控制面板的开合,直接操作splitView.IsPaneOpen即可,无需再调整根元素结构。

内容的提问来源于stack exchange,提问作者Paolog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 03:00:55