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

C# WPF XAML 如何在另一个类中修改Frame的Content内容

问题根因

你在页面按钮点击事件中通过new MainWindow()创建了全新的主窗口实例,这个实例并未在界面上渲染显示,你后续调用JoinNextPage操作的是这个不可见窗口内的Frame控件,所以当前你能看到的主窗口没有任何变化,也不会抛出异常。

解决方案

直接获取当前页面所属的、已经在运行的主窗口实例进行操作即可,修改页面的按钮点击事件代码:

private void bttn_start(object sender, RoutedEventArgs e)
{
    // 获取当前页面所在的已打开主窗口实例
    if (Window.GetWindow(this) is MainWindow mw)
    {
        mw.JoinNextPage();
    }
}

补充说明

  • 上述代码添加了类型校验,避免页面被嵌套到其他类型窗口时出现空引用异常
  • 若项目是多窗口嵌套的复杂场景,也可以通过全局事件、依赖注入共享主窗口实例的方式实现相同效果,上述方案为最轻量化的实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:24:04