【发布时间】:2011-08-23 11:06:42
【问题描述】:
我有一个 WinForms 项目,我想从 WPF 用户控件项目中打开一个 WPF 窗口。 但是当我创建 WPF 窗口的实例并调用 Show() 时,不会加载引导程序。在 Windows 应用程序中,它位于 App.xaml 中,但用户控件项目没有。 我能做些什么? 谢谢!
【问题讨论】:
标签: wpf bootstrapper caliburn app.xaml
我有一个 WinForms 项目,我想从 WPF 用户控件项目中打开一个 WPF 窗口。 但是当我创建 WPF 窗口的实例并调用 Show() 时,不会加载引导程序。在 Windows 应用程序中,它位于 App.xaml 中,但用户控件项目没有。 我能做些什么? 谢谢!
【问题讨论】:
标签: wpf bootstrapper caliburn app.xaml
我有一个控制台应用程序,它显示了我用 Caliburn.Micro 制作的 WPF gui。我这样呈现 GUI:
_App = new App(); _App.Run();
其中 App.xaml 包含引导程序,主线程是 STA,如下所示:
[STAThread]
static int Main(string[] args)
{ ... }
我知道你的情况不同,但也许这会给你一个想法。
【讨论】:
通过在 App.xaml 的资源中包含引导程序来完成的唯一事情是引导程序的实例化并保留一个引用,这样它就不会被垃圾收集。你可以尝试让它像这样实例化:
public class SomeClass {
static Bootstrapper _bs = new Bootstrapper();
...
}
这将确保它被初始化为静态构造的一部分,这发生在您可以创建SomeClass 的实例之前的某个时间。您可能需要进行试验,看看是否应该在您的 UserControl 或 Window 中发生这种情况。
【讨论】: