개발/소프트웨어 개발 정리

[UWP] 이미 떠있는 ContentDialog 체크 방법

로 얄 2017. 9. 5. 11:18
반응형

UWP에서 사용할 수 있는 팝업형식의 컨트롤은 두가지 정도입니다. Flyout과 ContentDialog. 물론 이 포스팅에서 두 컨트롤러에 대해 다룰 것은 아닙니다. 두 컨트롤에 대한 보다 자세한 내용은 사실 마이크로소프트 페이지에 존재합니다.


https://docs.microsoft.com/ko-kr/windows/uwp/controls-and-patterns/dialogs


UWP앱에서는 ContentDialog를 동시에 하나만 띄울 수 있습니다. 따라서 다른 ContentDIalog가 떠있는 상황에서 다시 ContentDialog를 띄우게 되면 exception이 발생하게되지요. 


그래서 문득 궁굼해졌습니다. 이미 떠 있는 ContentDialog를 체크하는 방법은 없을까?


언제나와 같이 열심히 구글링을 해본 결과 아래와 같은 코드로 체크가 가능하다는 것을 확인하였습니다.


var popups = Windows.UI.Xaml.Media.VisualTreeHelper.GetOpenPopups(Window.Current);

foreach (var popup in popups)

{

if(popup.Child is Windows.UI.Xaml.Controls.ContentDialog)

{

//do something

}

}


위의 코드를 이용하여 이미 떠있는 ContentDialog을 Hide시킨 후 새로운 ContentDialog를 띄우는 작업을 진행하는 것이 가능할 것으로 보여집니다.


출처 : https://social.msdn.microsoft.com/Forums/en-US/4faa5cdb-b49a-4ac5-9d5e-cbd9355b8821/uwpc-how-to-detect-if-a-contentdialog-is-visible?forum=wpdevelop

반응형