Caliburn在没有App.xaml的情况下启动,但是使用了bootstrapper

时间:2011-05-11 16:05:08

标签: wpf bootstrapper caliburn app.xaml

我有一个WinForms项目,我想从WPF用户控件项目中打开一个WPF窗口。 但是当我创建WPF窗口的实例并调用Show()时,不会加载引导程序。在Windows应用程序中,它位于App.xaml中,但用户控件项目没有此功能。 我能做什么? 谢谢!

2 个答案:

答案 0 :(得分:2)

通过在App.xaml的资源中使用引导程序来实现的唯一事情就是实例化引导程序并保留引用,这样它就不会被垃圾回收。您可以尝试将其实例化为:

public class SomeClass {
    static Bootstrapper _bs = new Bootstrapper();

    ...
}

这将确保它作为静态构造的一部分进行初始化,这在您创建SomeClass的实例之前会发生。您可能需要尝试查看是否应该在UserControl或Window中进行。

答案 1 :(得分:1)

我有一个控制台应用程序,它提供了我用Caliburn.Micro制作的WPF gui。我像这样呈现GUI:

        _App = new App();
        _App.Run();

其中App.xaml包含引导程序,主线程是STA,如下所示:

[STAThread]
static int Main(string[] args)
{ ... }

我知道你的情况有所不同,但也许这会给你一个想法。