2010-06-21 3 views
10

Comment obtenir une fenêtre d'une page, donc j'ai un cadre de page dans ma fenêtre:Obtenez la fenêtre d'une page

<Frame NavigationUIVisibility="Hidden" Name="frmContent" Source="Page/Page1.xaml" OverridesDefaultStyle="False" Margin="0,0,0,0" /> 

Et en essayant d'accéder à ma fenêtre de cette page ainsi:

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); 

Mais le parent renvoie null, donc je vois un message « 111 »,

Où est mon erreur et comment obtenir l'objet fenêtre correcte?

Répondre

32

Le parent de la page sera le cadre et non la fenêtre.

La façon la plus simple est d'utiliser la méthode statique Window.GetWindow:

var wnd = Window.GetWindow(this); 
+4

Je reçois null en utilisant cette solution: S – Nickon

+0

Moi aussi, en utilisant null obtenir ce code .. :( –

+2

fonctionne très bien, l'enfant doit être une xaml page chargée à l'intérieur d'un cadre qui est à l'intérieur d'une fenêtre, si ces conditions ne sont pas remplies, il n'y a pas de route vers l'objet fenêtre donc nul – Wobbles

Questions connexes