2011-01-20 249 views
0

我试图创建一个将要托管多个WPF/Surface应用程序的父级WPF/Surface应用程序。我正在寻找一些如何实现这些功能的指针。正在阅读http://msdn.microsoft.com/en-us/library/ms742522.aspx,但它谈论了在WPF中托管Win32内容,反之亦然。在WPF/Surface应用程序内托管WPF/Surface应用程序

我的想法是有相似的地方,你有一个主要形式,并且可以实例化多个子窗体MDI形式的东西。

在我的情况下,这些将是不同的应用程序,将使用配置文件启动并加载到主应用程序中。

而且,由于是有办法,以确保主窗口的进程内存不会被启动的子进程挤兑。

编辑: 主机应用程序将启动基于什么用户选择不同的应用程序。人们可以说它就像一个基于WPF/Surface touch SDK的应用程序启动器。现在,一旦启动应用程序,启动程序会在后台运行(除了显示小按钮以在稍后的某个点再次启动它)以及当用户结束当前应用程序启动程序时,它会再次返回到前台。我觉得唯一需要的交互是知道已启动的应用程序已终止或在有限的屏幕区域内调用应用程序。如果有人看过微软表面应用程序启动器,即使启动应用程序,也有角落按钮,可以将应用程序启动器置于前台。

+0

复制表面壳的能力涉及到很多东西。你能更具体地了解你正在寻找哪些部分的帮助? – 2011-01-21 01:22:31

+0

就像我之前提到的,主要目的是在每个表面应用程序的顶部有一个小按钮来回应用程序启动器。因此,目标是将表面应用程序作为流程启动,并在关闭时跟踪它们。 – 2011-01-27 15:07:00

回答

0

我遵循这种方法来解决这个问题。启动程序不在本身托管应用程序,但会启动一个新应用程序并隐藏自己。

步骤我跟着:

  1. 主要启动应用程序将在Kiosk模式之上运行,即始终/别无选择,通过捕捉关闭事件来关闭/在任务栏中显示无实例/没有标题栏/杀explorer.exe /隐藏任务栏。
  2. 启动程序填充一个水平列表框(用于UI的数据模板),它允许占用屏幕的主要中心区域,并且可以以任何方式滚动。
  3. 当用户在列表框选择的项目,点击/轻敲事件的独立进程启动与发射窗口的可见性设置为隐藏和一个小按钮(基本上与内只是一个按钮和大小设置为按钮的高度/宽度的窗口)在屏幕的任意一个角落创建,始终位于顶部选项上。
  4. 按钮的功能是最小化当前的工作应用程序,并将启动器的可见性设置为可见并将焦点设置到此窗口。
  5. 由于启动过程是由启动程序启动的,因此我为启动的窗口捕获关闭事件以知道用户结束了应用程序,然后再次弹出启动程序。
0

除了“不同的应用程序”部分,这听起来像MVVM的经典案例。这些“不同的应用程序”实际上是分开的应用程序,还是他们可能只是在同一个应用程序内的单独项这可能会简化演示的选择。

我想你仍然可以看到一个叫做“主机”的视图,它提供了一个不同的应用程序。

当然,WPF没有MDI的概念,但你可以同时打开多个,非模态窗口。

这真的取决于你的意思是“托管”。主窗口是否需要以某种方式处理和/或与其他应用程序交互,还是仅仅是其他应用程序的启动平台?