2013-03-14 3 views
3

Я переношу проект Winform в WPF, и я начал работать с Windows & Pages (используя управление рамкой). В основном я намерен перейти с одной страницы на другую, пока пользователь не войдет в систему успешно. Теперь, поскольку logIn обрабатывается на уровне страницы ... мой вопрос:закрытие окна wpf из рамки кадра

Как можно закрыть страницу родительского окна?!?

благодарит заранее, и если вы знаете код в vb или если не в C#, я это выясню.

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

Что вы подразумеваете под _Shut Down the Parent Window_? Вы хотите закрыть его? Или вы хотите выйти из приложения? – DHN

+0

извините. просто закройте его. – CogentP

ответ

2

Попытка

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

Метод Window.GetWindow() возвращает ссылку на объект Window, на котором размещена дерево содержимого, в течение которого объект зависимостей находится.

0

Вы должны получить окно, на котором размещается Page с помощью свойства Parent на экземпляре страницы.

Имущество относится к категории DependencyObject, поэтому вам нужно указать значение, которое вам нужно. В этом случае вы добавили его в Window.

public class MyPage : Page{ 

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

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

Спасибо Jehof, я думаю, что ты на правильном пути, но просто попробовал код и этот. Парент пуст (ничего). – CogentP

+0

@ user1603568 Является ли 'this.Parent' действительно ничем и не является переменной' parentWindow' после того, как на '' '' ничего ' – Jehof

+0

Dim LogIn = TryCast (Me.Parent, Window), это то, что я сделал в vb.net. В основном в TryCast Me.Parent появляется как ничто. Поэтому, очевидно, переменная LogIn такая же. – CogentP

Смежные вопросы