从页面获取窗口

cnd*_*cnd 15 .net c# wpf

如何从页面获取窗口,所以我的窗口中有一个页面框架:

<Frame NavigationUIVisibility="Hidden" Name="frmContent" Source="Page/Page1.xaml" OverridesDefaultStyle="False" Margin="0,0,0,0"  />
Run Code Online (Sandbox Code Playgroud)

并试图以这种方式从这个页面访问我的窗口:

private void Page_Loaded(object sender, RoutedEventArgs e)
{
    if ((Window1)this.Parent == null)
        System.Windows.Forms.MessageBox.Show("111");
    else
    wb1.ObjectForScripting = new MyScriptObject((Window1)this.Parent);
Run Code Online (Sandbox Code Playgroud)

但是Parent返回null,所以我看到"111"消息,

我的错误在哪里以及如何使窗口对象正确?

Mat*_*ton 42

页面的父级将是Frame,而不是Window.

最简单的方法是使用Window.GetWindow静态方法:

var wnd = Window.GetWindow(this);
Run Code Online (Sandbox Code Playgroud)

  • 我使用这个解决方案得到null:S (4认同)
  • 工作正常,子必须是在窗口内的框架内加载的xaml页面,如果不满足这些条件,则没有到窗口对象的路径因此为null. (2认同)
  • 有没有办法获得“框架”? (2认同)