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

UWP开发中如何将项目内应用页面加载至SplitView的内容区域

问题原因
  • 你代码中使用CoreApplication.CreateNewView是用于创建独立应用新窗口的API,创建的视图运行在独立UI线程中,生成的Frame属于跨线程UI元素,无法挂载到当前窗口的SplitView控件上
  • 额外调用Window.Current.Activate和TryShowAsStandaloneAsync会把新页面放在独立窗口打开,完全不符合内嵌到SplitView的需求
修改方案

1. 修改XAML代码

将SplitView.Content内的占位Button替换为内置Frame,作为固定的内容导航容器:

<SplitView x:Name="MainPanel" DisplayMode="Inline" IsPaneOpen="True">
    <SplitView.Pane>
        <NavigationView x:Name="Navigation" SelectionChanged="Navigation_Navigate">
            <NavigationView.MenuItems>
                <NavigationViewItem x:Name="Home" Icon="Home" Content="Home"/>
                <NavigationViewItem x:Name="Colours" Icon="Edit" Content="Colours"/>
                <NavigationViewItem Icon="Admin" Content="Security"/>
                <NavigationViewItem Icon="World" Content="Translate"/>
            </NavigationView.MenuItems>
        </NavigationView>
    </SplitView.Pane>
    
    <SplitView.Content>
        <Frame x:Name="ContentFrame"/>
    </SplitView.Content>
</SplitView>

2. 修改后台C#代码

删除冗余的NavigateToApp方法和创建新视图的逻辑,直接操作ContentFrame完成导航:

private void Navigation_Navigate(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
{
    NavigationViewItem item = args.SelectedItem as NavigationViewItem;
    if (item == null) return;
    
    switch (item.Content.ToString())
    {
        case "Home":
            ContentFrame.Navigate(typeof(MainPage));
            break;
        case "Colours":
            ContentFrame.Navigate(typeof(Colours));
            break;
        case "Translate":
            ContentFrame.Navigate(typeof(Translate));
            break;
    }
}
特殊场景适配

如果你要求每次加载页面都必须新建Frame对象,可以修改对应分支的逻辑:

case "Colours":
    Frame newFrame = new Frame();
    newFrame.Navigate(typeof(Colours));
    MainPanel.Content = newFrame;
    break;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 23:54:06