none
一个奇怪的需求,WPF Usercontrol能使用Prism吗? RRS feed

  • 问题

  • 一般我们都是在window上用Prism,修改App的OnStartup,添加Bootstrapper.cs等等,之前用prism做了一个客户端,现在想把它封装成控件提供给网页调用,那如何将个模块通过prism组合起来封装成一个usercontrol?

    之前试过WPF的usercontrol可以通过c++/clr 方式被ocx调用的

    2012年3月30日 6:14

答案

  • Hi,

    Prism中 Bootstrapper 的作用只是提供启动前的一些配置,我们完全可以将Bootstrapper 的内容放入一个对外的类型中,然后通过这个类型去返回一个由Prism实现的UserControl。

    提供给网页的话,如果是XBAP形式的,直接可以使用,如果是其他形式,则还再需要进行一次封装成 ocx。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 dk.huang 2012年4月1日 9:16
    2012年3月30日 9:02
    版主

全部回复

  • Hi,

    Prism中 Bootstrapper 的作用只是提供启动前的一些配置,我们完全可以将Bootstrapper 的内容放入一个对外的类型中,然后通过这个类型去返回一个由Prism实现的UserControl。

    提供给网页的话,如果是XBAP形式的,直接可以使用,如果是其他形式,则还再需要进行一次封装成 ocx。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 dk.huang 2012年4月1日 9:16
    2012年3月30日 9:02
    版主
  • Hi,

    Prism中 Bootstrapper 的作用只是提供启动前的一些配置,我们完全可以将Bootstrapper 的内容放入一个对外的类型中,然后通过这个类型去返回一个由Prism实现的UserControl。

    提供给网页的话,如果是XBAP形式的,直接可以使用,如果是其他形式,则还再需要进行一次封装成 ocx。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    不是很明白 比如我现在的应用程序MainWindow的OnStartup中写了Bootstrapper.Run(); 我可以将这个MainWindow去掉,写一个类,如BootInit,在其中的方法BootInitRun中执行Bootstrapper.Run(),在Bootstrapper类中,我需要将InitializeShell()重写,
    原来的 Application.Current.MainWindow = (MainWindow)this.Shell; Application.Current.MainWindow.Show();
    改成: MainUsercontrol uc=(MainUsercontrol )this.Shell;
    然后ocx启动oncreate的时候,去初始化这个BootInit类并执行BootInitRun这样就可以了吗?
    这个类也可以是一个Usercontrol吗,在构造中Bootstrapper.Run()?
    • 已编辑 dk.huang 2012年3月31日 9:06
    2012年3月31日 9:05
  • 你需要的是封装UserControl,所以你不需要通过Bootstrapper去run一个application, 而是通过Bootstrapper初始化Module,然后就可以直接返回UserControl的实例,而不是App.Run。 

    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年4月1日 9:23
    版主
  • 你需要的是封装UserControl,所以你不需要通过Bootstrapper去run一个application, 而是通过Bootstrapper初始化Module,然后就可以直接返回UserControl的实例,而不是App.Run。 

    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    嗯,现在可以成功的返回那个UserControl了,只是又遇到另外一个问题http://social.msdn.microsoft.com/Forums/zh-CN/wpfzhchs/thread/11ac1a99-7a3d-40ed-8f7a-169c8463709d,不知版主能否帮忙看下?
    2012年4月1日 9:30