WPF Popup 관련 질문드립니다.

안녕하세요. WPF로 화면을 만들고 있는데 Popup 관련해서 도저히 해결안되는 부분이 있어서 질문드립니다.

View에서 UserControl안에 Popup을 생성하고 popup:MyPopupUCV를 설정해서 다른 UserControl을 팝업창으로 설정하였습니다.

그리고 ViewModel에서 특정 버튼을 클릭했을 때 MyPopupUCV.IsOpen = true;로 팝업이 화면에 표시되게 하였습니다. 그리고 MyPopupUCV.StaysOpen은 true로 설정했습니다.

여기까지는 정상적으로 작동합니다. 그런데 팝업이 표시된 상태에서 작업 표시줄에 있는 다른 프로그램을 클릭하는 경우 C# 프로그램이 뒤로 넘어가고 다른 프로그램이 제일 앞으로 나올 때 팝업이 부모 윈도우를 따라서 뒤로 넘어가지 않고 계속 최상위로 표시됩니다(StaysOepn이 true여서 그런거같습니다)

다른 화면에서는 StayOpen을 false로 설정해서 이런 문제가 없었는데 이 화면은 팝업창이 표시되어있을 때 다른 곳을 클릭한다고 해서 팝업창이 사라지면 안되서 StaysOepn을 true로 한 상태입니다.

제가 원하는건 작업표시줄에서 다른 프로그램을 클릭했을 때 팝업창이 부모 윈도우를 따라서 뒤로 넘어갔으면 좋겠습니다.

감사합니다.

1 Like

그런 상황에서는 Popup이 아닌 Canvas 등을 활용해서 부모 창 레이아웃 내에서 컨트롤을 표시하셔야 할 것 같습니다.

Popup형태의 독립적 창이 필요하시다면 아래 링크를 참고해 보시면 어떨까합니다.

3 Likes

구현 가능하다고 하더라도 아주 복잡해질 것 같습니다.

팝업 뿐만이 아니라 윈도우도 마찬가지로, 동작 제어 관련해서 매끄럽지 않은 부분이 꽤 있습니다. 그래서 @al6uiz 말씀하신 것처럼 다른 방식을 사용해보시는 것이 좋아 보입니다. 요즘에는 팝업과 같은 레이아웃을 팝업처럼 보이도록 덮어서 사용하는 것도 흔하게 볼 수 있죠.

저도 같은 생각입니다.

1 Like

말씀하신대로 팝업이 아니라 다른 방법으로 구현해보는 방향으로 잡도록 하겠습니다.

감사합니다!