2013-06-14 3 views

답변

0

내 실버 라이트 앱에서 열린 대화 상자를 닫으려면 다음 코드 스 니펫을 사용합니다.

UIElement ui = App.Current.RootVisual; 
    foreach (var popup in VisualTreeHelper.GetOpenPopups()) 
    { 
     if (popup != null) 
     { 
     System.Windows.Controls.ChildWindow dialog = popup.Child as System.Windows.Controls.ChildWindow; 

     if (dialog != null) 
     { 
      dialog.DialogResult = false; 
      dialog.Close(); 
     } 
     } 
    } 

이것은 Silverlight 4 이상에서만 작동합니다.

+1

는'DialogResult' 설정하고 (가까운 애니메이션 경우) Close'이 비활성화로 응용 프로그램을 표시 할 수 있습니다'호출합니다. 이걸 막기 위해 하나만 사용하십시오 ... – Tonio

+0

@ 토니 오가 코멘트 주셔서 감사합니다. 나는 이것을 체크 할 것이다 ... – gyurisc

1

는이 같은를 추가해야합니다 :

dialog.DialogResult = false; 
dialog.Close(); 
+0

여기서의 특정 문제는 대화 상자의 실제 닫는 것이 아니라 대화 상자에 대한 참조를 찾는 것이다. 먼저 VisualTree에서 찾아야 할 점은 그 점을 닫으면 설명 된 것과 똑같이 작동한다는 것입니다. – gyurisc

관련 문제