2011-12-20 2 views
1

에 내 응용 프로그램 클래스에서 두 개의 창을 만듭니다.육아 윈도우 WPF

::ShowWindow(PresentationWindowHwnd, SW_HIDE); 

이것은 프레젠테이션 창을 숨기고 상호 작용 창을 숨기지 않습니다.

두 개의 창이 숨겨져 있는지 확인하기위한 여러 가지 해결책이 있습니다. 문제는 해결되지 않습니다. 나는 그것의 소유자 속성이 프레 젠 테이션 창에 설정 주어진 프레 젠 테이션 창과 함께 상호 작용 창이 숨겨져 있지 않은 이유를 알고 싶습니다.

윈도우 7 64/32 비트
비주얼 스튜디오 2010
.NET 4.0

+0

+1이 질문을 좋아합니다. 그래서 여기에 내 추측입니다. 상호 작용 창 스타일을 ToolWindow로 변경하고 이것이 효과가 있는지 확인하십시오. 나는 소유자 윈도우를 설정하는 것만으로는 어떤 기능도 많이 추가하지 않는다고 말할 수 있습니다. 사실, 오래전에 그것을 사용하여, 당신이 실제로 소유자 윈도우를 설정할 수있는 승리 API에서 기억할 수 없습니다. 그래서 그것은 포지셔닝과 모달 동작만을위한 것입니다. 도구 창을 최소화하면 추가 로직이됩니다. 그렇다면 논리가 자신이 직접 입력해야합니다. – dowhilefor

+0

@dowhilefor : 도구 창으로 만들려고했는데 아무런 차이가 없었습니다. – Nathanael

+0

@Cameron : 우리가 말하는 것과 같은 차이점 중 하나를 발견했다고 생각합니다.) – Nathanael

답변

0

최소화/최대화/닫기 모든 부모의 소유 창에 전파; 그러나 숨기기는하지 않습니다.

MSDN 설명서에는 다른 방식으로도 동작해야한다고 생각하는 내용은 없습니다.

+0

show 또는 showdialog를 호출하기 전에 소유권을 설정할 수 없습니다. WPF의 Window는 HWND를 래핑하지만 show 또는 showdialog가 호출 될 때까지는 기본 윈도우가 생성되지 않습니다. 이 작업을 시도하면 예외가 발생합니다. – Nathanael

+0

@Nathanael이 문제를 자세히 조사한 후에는 '숨기기'가 소유 된 창으로 전파되지 않는 것으로 나타납니다. 모든 최소화/최소화/닫기. 'Hide'가 소유 한 창을 숨겨야한다고 생각하게 만들 수있는 문서를 찾지 못하는 것 같습니다. 당신은 이것에 암시하는 것을 가지고 있습니까? –

+0

나는 그것에 대해 암시하는 것을 가지고 있지 않습니다. 나는 그것이 잘못되었을 때 또는 단순히 지원받지 못했다면 궁금해했다. – Nathanael