5

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

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

如果您知道 vb 中的代码,请提前致谢。如果没有,我会在 C# 中解决。

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

2 回答 2

3

尝试

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

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

于 2013-03-15T14:09:10.850 回答
0

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

该属性是 type DependencyObject,因此您必须将值转换为您需要的类型。在您的情况下,您将其转换为Window.

public class MyPage : Page{

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

     if (parentWindow != null) {
       parentWindow.Close();
     }
   }
}
于 2013-03-14T13:42:29.210 回答