2010-06-21 3 views
10

에서 창을 가져, 그래서 난 내 창에 페이지 프레임있어 :방법 페이지에서 창을 얻을 수있는 페이지

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

그리고이 페이지에서 이런 식으로 내 창에 액세스하려고를 :

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

그러나 부모가 null을 반환, 그래서 "111"메시지가 표시,

어디에 내 실수와 방법 윈도우 객체가 올바른 얻는 방법은?

답변

32

페이지의 부모는 창이 아니라 프레임입니다. 나는이 솔루션을 사용하여 null을 얻을

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

:

가장 쉬운 방법은 Window.GetWindow 정적 방법을 사용하는 것입니다이 코드를 사용하여 null을 받고, 나도 S – Nickon

+0

을 .. :(잘 작동 –

+2

, 아이가이어야합니다 xaml 페이지가 윈도우 내부에있는 프레임 안에로드 된 경우, 조건이 충족되지 않으면 윈도우 객체에 대한 경로가 없습니다. 따라서 null입니다. – Wobbles

관련 문제