【问题标题】:Shell-less UI in PrismPrism 中的无壳 UI
【发布时间】:2012-02-10 22:01:27
【问题描述】:

是否可以启动 Prism v4 应用程序,跳过 Shell 初始化/创建/显示,而是显示特定模块的视图?

例如,假设我有一个名为 app.exe 的 Prism 应用程序。它有一个 Window 类(Shell),其中包含我的应用程序“完整视图”的区域。

我想用一个参数启动 app.exe,像这样:app.exe /view:MyView

当 app.exe 启动时,我不想看到我的应用程序的“完整视图”,其中 MyView 显示在 Shell 的区域内。我想去无壳!我只想看到 MyView 显示在其自己的窗口中(如弹出窗口),而 Shell 不可见。

如果我可以完全跳过创建 Shell,那就更好了。

救命!

【问题讨论】:

    标签: c# prism prism-4 prism-2


    【解决方案1】:
    • 不确定 WPF,但在 Silverlight 中必须设置 RootVisual,并且它必须至少是可视控件类型。

    • 你想如何显示 'MyView' 的 ChildWindow ?应该叫它。你在使用 InteractionRequest 吗?你是从代码隐藏中做的吗?必须有一些“基”类来初始化 ChildWindow。如果 ChildWindow 它是第一个窗口 - 那么它不是 ChildWindow 它是 Shell。

      我的猜测 - 可能你应该检查你的应用程序逻辑。不要坚持全局名称。称它为 Shell、ChildWindow 或 PopupWindow 没关系——只需构建清晰的应用程序架构图——谁先走?您是否需要事件驱动的基(管理器)类(如您的无外观 Shell 示例中)?数据驱动的应用程序?

    【讨论】:

    • 让我试着澄清一下:我有一个包含 3 个模块的 Prism 应用程序。我想启动我的应用程序并只加载 1 个模块并在窗口中显示它的主视图。我只想在窗口中看到这个视图,没有其他 Shell UI 也没有其他模块。我们正在尝试实现“精简 UI”和“完整 UI”模式,根据应用程序的启动方式,Shell 加载并显示所有可用的 UI 和模块(完整模式),或者以某种方式在特定模块加载并显示在“基本”外壳中(没有功能区、没有状态栏、没有选项卡等)。也许是弹出区域?可能有多个引导加载程序?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多