2009-09-30 2 views
1

많은 콘텐츠 영역이 포함 된 응용 프로그램을 만들고 있습니다. 사용자 입력에 응답하여 이러한 내용 영역 중 하나를 전체 응용 프로그램 창에 맞게 토글하고 선택적으로 다시 원래 위치로 되돌릴 수있는 동작을 구현하려고합니다. 나는 여러 가지 접근법을 실험했으며 그 중 어느 것도 나를 위해 최적이 아닌 것 같습니다. 여기에 내가하려고 작업은 다음과 같습니다에만 CanvasPanel 완전히이 속성을 존중하는 것 때문에 작동하지 않습니다 :WPF 콘텐츠를 전체 응용 프로그램 창에 표시하는 방법

  1. 내가 "전체 화면"수 있도록 할 내용에 ClipToBoundsProperty를 사용합니다. 응용 프로그램을 지역화해야 CanvasPanel을 피하고 싶습니다.
  2. 그리드를 사용하여보고 싶은 부분 만 보이게하여 전체 화면을 차지하십시오. 이는 실제로 작동하지만 구현이나 관리가 쉽지는 않습니다. "전체 화면"컨텐트 영역은 여러 레벨로 깊게 구성 할 수 있습니다 (예 : Tabcontrol 내부에있는 경우). 탭 헤드도 숨겨야합니다.
  3. 컨텐트 영역을 별도의 뷰로 재구성하고 나머지를 숨기는 동안 표시합니다 : DataTemplates와 ViewModel 객체를 사용하기에 충분히 쉬울 것 같지만,이 접근 방식을 사용하면 GUI/View 전용 상태가 유지되지 않습니다.
  4. 어떻게 든 "들어 올리는"GUI /보기 별도의보기로 "전체 화면"을 표시하고 나머지는 숨기면서 표시하고 싶습니다.이 작업을 수행하는 방법 또는 가능할 지 모르겠다.

아무튼 더 나은 방법을 알고 있다면 나는 그것에 대해 알고 싶습니다.

고마워요!

답변

1

네 번째 옵션 : "myWindow.Hide()"를 호출하여 창을 숨길 수 있습니다. 메모리에 남아 있지만 사용자는 볼 수 없습니다. 다시 표시하려면 "myWindow.Show()"를 호출하기 만하면됩니다.

또는 팝업 컨트롤을 사용해 볼 수도 있지만 다른 모든 콘텐츠 위에 배치 할 수 있습니다. 참조 : 답장을 보내

http://roecode.wordpress.com/2008/01/07/wpf-popup-control-part-1-the-quick-and-dirty-way/ http://dotnetslackers.com/Community/blogs/bmains/archive/2007/07/26/Introduction-to-WPF-Popups.aspx

+1

안녕 감사합니다. 나는 Popup 컨트롤을 사용할 수있다. 그러나 문제는 Popup 컨트롤을 채우는 것입니다. 콘텐츠 속성에 콘텐츠의 일부만 할당하면 프레임 워크는 후자가 이미 논리 트리에 있다고 불평하며 먼저 제거해야합니다. 논리적 인 트리를 수동으로 수정하는 경험이 없으므로 시작하는 것이 좋은지 확실하지 않습니다. 단순히 데이터 모델 객체에서 다시 내용을 인스턴스화하면 원래 내용에 대한 GUI 상태가 손실되는 문제가 발생합니다. –