1

我正在开发一个包含许多内容区域的应用程序。我想实现一种行为,以便响应用户输入,可以切换这些内容区域中的任何一个以适应整个应用程序窗口,并且可以选择再次回到其原始位置。我尝试了几种方法,但没有一种方法对我来说是最佳的。这是我试图做的:

  1. 在我想要制作“全屏”的内容上使用 ClipToBoundsProperty:不起作用,因为只有 CanvasPanel 似乎完全尊重此属性。应用程序需要本地化,所以我真的很想避免使用 CanvasPanel。
  2. 使用 Grid 并折叠其他内容区域,这样只有我想看到的内容是可见的,因此占据了整个屏幕:这可能会起作用,但似乎并不容易实现或维护。“全屏”内容区域可能有几个层次,例如位于 Tabcontrol 内,所以我也必须隐藏选项卡标题等。
  3. 在单独的视图中重建内容区域并在隐藏其余部分时显示它:使用 DataTemplates 和我的 ViewModel 对象似乎很容易,但使用这种方法不会保留任何仅 GUI/视图的状态。
  4. 不知何故,我想“全屏”将 GUI/视图“提升”到单独的视图中,并在隐藏其余部分的同时显示它:我不知道如何做到这一点,或者即使这是可能的。

无论如何,如果有人知道更好的方法,我很想知道它。

非常感谢!

4

1 回答 1

1

关于您的第四个选项:您可以通过调用“myWindow.Hide()”隐藏任何窗口,它将保留在内存中,但用户将无法看到它。当您希望它再次显示时,只需调用“myWindow.Show()”。

或者,您可以尝试使用 Popup 控件,它将放置在您的所有其他内容之上。看:

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

于 2009-09-30T20:19:59.667 回答