从帧内关闭wpf窗口

时间:2013-03-14 13:13:46

标签: wpf vb.net navigation

我正在将一个Winform项目移植到WPF并开始使用Windows&页面(使用框架控件)。基本上我的目的是从一个页面导航到下一个页面,直到用户成功登录。现在,因为logIn是在页面级别处理的...我的问题是:

页面如何关闭父窗口?!?

如果您知道vb中的代码,请提前致谢。如果不是,我会在C#中找到它。

Public Sub CloseLogIn()
    Dim LogIn = TryCast(Me.Parent, Window)
    If LogIn IsNot Nothing Then
        LogIn.Close()
    End If
End Sub

2 个答案:

答案 0 :(得分:2)

尝试

Public Sub CloseLogIn()
    Dim LogIn = Window.GetWindow(Me)
    If LogIn IsNot Nothing Then
        LogIn.Close()
    End If
End Sub

Window.GetWindow()方法返回对Window对象的引用,该对象承载依赖项对象所在的内容树。

答案 1 :(得分:0)

您应该使用Page实例上的属性Parent来获取承载Page的窗口。

该属性的类型为DependencyObject,因此您必须将值强制转换为所需的类型。在你的情况下,你把它投射到Window

public class MyPage : Page{

   public void CloseWindow(){
     var parentWindow = this.Parent as Window;

     if (parentWindow != null) {
       parentWindow.Close();
     }
   }
}