2010-12-01 6 views
1

나는 WPF NotifyIcon from Philipp Sumi을 사용하고 있습니다. 트레이 아이콘에서 WPF UserControl을 팝업으로 사용할 수 있습니다. 그것은 아주 좋은 작품이지만, 한 상황에서 내 팝업 위에 표시되는 다른 응용 프로그램에서 다른 팝업 있습니다. 나는 항상 내 팝업을 원한다.UserControl 맨 위에 항상 (최상위, XAML/WPF)

할 수 있습니까? 그래서 UserControl의 z 순서에 영향을 미칠 수 있습니까?

편집 - 반응 의견 : 나는 다른 응용 프로그램이만큼이나 중요 자신의 정보를 찾아 내고, 그 위에 있어야한다 생각하기 때문에 내 질문에, 바보 보이는 실현 . 제 경우에는 그런 상황이 아닙니다. 외부 앱에 연결 중입니다. 이 응용 프로그램의 목적은 외부 장치에서 데이터를로드하는 것입니다. 해당 응용 프로그램이 끝나면 "로드 완료"라는 메시지가 나타납니다. 그런 다음 내 응용 프로그램에서 데이터를 처리합니다. 내 앱이 처리를 완료하면 (거의 즉시) 상자에 '처리가 완료되었습니다. 여기를 클릭하여 데이터를 표시합니다'라는 메시지가 표시됩니다. 내 특정 경우에는 클릭해야하는 버튼이 있기 때문에 내 팝업의 정보가 사용자에게 더 유용합니다. 두 팝업 모두 동일한 데이터에 대해 "대화"합니다. 더 많은 댓글을 올릴 수 있습니다 : "왜 팝업을 사용합니까?" 대체 솔루션이 아닌 질문에 대한 답변에 집중하십시오.

+1

=) –

+5

다른 응용 프로그램이 같은 방법을 사용하면 어떻게됩니까 당신의 팝업의 위에 얻는? – TheFogger

+0

의견을 보내 주셔서 감사합니다. 나는 나의 포스트를 편집하고 나의 상황을 정리했다 –

답변

1

글쎄, 그런 MakeMyThingSuperTopMost() 거지가 있으니 read here해야합니다.

+0

나는 SuperTopMost를 요구하지 않고있다. 나는 TopMost를 요구하고있다. 이것은 정확하게 다른 하나의 앱으로 매우 구체적인 사례를 처리하는 것입니다. –

1

다른 팝업을 "최상위가 아님"으로 설정하고 팝업을 표시 할 수 있습니다. EnumWindows api func을 사용하여 열려있는 모든 창을 열거하고 SetWindowsPos을 사용하여 최상위 상태를 제거하여 다른 팝업을 찾아야합니다. 그러나 이것은 확실히 더럽고 깨지기 쉬운 속임수입니다 (당신이 전혀 작동하게 만들 수 있다면).

http://pinvoke.net/default.aspx/user32.EnumWindows http://pinvoke.net/default.aspx/user32/SetWindowPos.html 모든 개발자가 자신의 팝업 가장 importatnt이라고 확신

관련 문제