c#双屏应用程序,如何从第二个窗口更改主窗口的框架

本文关键字:窗口 框架 第二个 应用程序 | 更新日期: 2023-09-27 17:59:14

我有一个在两个屏幕上工作的应用程序,第二个屏幕是一个设置面板。在设置面板中,我需要刷新主窗口中框架的内容。我使用的是这个代码:

  MainWindow winFirst= new MainWindow();
        var primaryScreen = System.Windows.Forms.Screen.AllScreens.Where(s => s.Primary).FirstOrDefault();
        if (primaryScreen != null)
        {
            winFirst._mainFrame.Source = new Uri("DynamicSource.xaml", UriKind.Relative);
            winFirst.Show();
        }

有了这个代码,我可以在主窗口中加载我需要的东西,只需按下第二个窗口中的按钮。但这段代码每次启动时都会加载一个新的MainWindow类……我认为这不是最好的方法,也许我会遇到一些与内存相关的问题。那么,如果这是一个有问题的方法,我该如何访问当前主窗口的框架并在不重新输入的情况下进行更改?

Application curApp = Application.Current;
Window mainWnd = curApp.MainWindow;

我也尝试过这个代码,但这样我在mainWnd中找不到_mainframe元素。

c#双屏应用程序,如何从第二个窗口更改主窗口的框架

Application.Current始终可以访问主窗口,但它作为窗口返回。然而,既然你知道它应该是什么,你就可以投它:

var mainWin = Application.Current.MainWindow as MainWindow;
Debug.Assert( mainWin != null ); //sanity check
//do things with mainWin