0

首先我只想说我是WPF的新手,所以请原谅我的无知......

我正在为 Rhino 4.0 创建一个 .Net 插件。通过该插件,我正在使用 WPF 开发 UI。

Rhino 4.0 CAD 引擎是一个 MFC/Win32 应用程序。该插件将在应用程序运行后执行,它创建 WPF 窗口,然后将 MFC 窗口“吸”入其中。

所以我的问题是,如果托管应用程序不是 WPF 应用程序,WPF 是否会查找 App.xaml 文件以获取应用程序级资源?

如果不是,那么存储应用程序级资源的最佳方式是什么?

谢谢,

杰森

4

4 回答 4

3

App.xaml 用作部分类 App 的一部分:应用程序。如果您的应用程序没有基于 WPF 的 Application 类,您可以手动加载字典并与应用程序合并并创建一个主窗口并显示它(通过 Application 类的静态方法访问)。

代码有点像这样。

var reader = new XamlReader();
var dictionary = reader.read("path to xaml file") as ResourceDictionary;
if (dictionary != null)
    Application.MergedDictionaries.Merge(dictionary);

var mainWindow = new MyMainWindow();
mainWindow.Show();
于 2009-10-17T16:25:44.487 回答
1

WPF 项目将 - 默认情况下 - 为您的应用程序生成一个入口点。此入口点Application为您构造和初始化您的派生类。如果需要,您始终可以手动创建实例,并在其中存储应用程序级资源:

App app = new App();
app.InitializeComponent();
app.Run();
于 2009-03-31T14:13:28.337 回答
1

您是否尝试过将资源存储在 MSDN 所称的“主题级别”?

在名为“ <root>\Themes”的文件夹中有一个名为generic.xaml.

对于不是 WPF 应用程序的项目,我没有尝试过此方法,但该方法可能对您有用。

于 2009-04-30T13:07:14.083 回答
0

我的猜测是它与 rhino 如何运行你的插件有关它是作为一个单独的进程运行它还是它只是调用你定义的一些东西?

如果它确实调用了您定义的函数,那么您可以将启动窗口的代码放在那里吗?

于 2009-03-31T14:13:12.863 回答