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
'개발 > 소프트웨어 개발 정리' 카테고리의 다른 글
git username & email 설정 (0) | 2024.02.19 |
---|---|
[Android] NDK에서 java method를 호출할 때 type에 대한 정리 (0) | 2017.02.23 |
[Android] NDK(jni) 에서 Asset에 접근하는 방법 (0) | 2017.02.23 |