如何制作一段WPF内容占用整个应用程序窗口

时间:2009-09-30 18:43:07

标签: wpf controls fullscreen

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

  1. 对我要制作的内容使用ClipToBoundsProperty“全屏”:不起作用,因为只有CanvasPanel似乎完全尊重这个属性。应用程序需要本地化,所以我真的想避免使用CanvasPanel。
  2. 使用网格并折叠其他内容区域,这样只有我想看到的内容区域可见,因此占用整个屏幕:这可能会起作用,但似乎不易实现或维护。 “全屏”内容区域可能有多个级别,例如驻留在Tabcontrol中,因此我也必须隐藏选项卡标题等。
  3. 在单独的视图中重建内容区域并显示它,同时隐藏其余部分:看起来很容易与DataTemplates和我的ViewModel对象一起使用,但是使用这种方法不会保留任何GUI / View状态。
  4. 以某种方式将我想要“全屏”的GUI / View“提升”到单独的视图中并显示它,同时隐藏其余部分:我不知道该怎么做,或者即使这是可能的。
  5. 无论如何,如果有人知道更好的方法,我很乐意了解它。

    非常感谢!

1 个答案:

答案 0 :(得分: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