从代码创建应用程序并从xaml加载资源字典

时间:2012-09-05 13:52:46

标签: c# .net wpf xaml resourcedictionary

这可能是一个非常愚蠢的问题,但我现在根本无法理解这个问题。

我有一个定义应用程序级资源的App.xaml文件:

<Application x:Class="WpfMPManager.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"             
         StartupUri="MainWindow.xaml">
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="MyDictionnary.xaml"/>                   
    </ResourceDictionary>
</Application.Resources>

由于各种原因,我通过类似的.cs文件启动此应用程序(此文件中实际上还有很多内容)。

   [STAThread]
    static void Main(params string[] args)
    {
        App myApp = new App();
        MainWindow myWindow = new MainWindow();
        myApp.Run(myWindow);
     }

但是,当我以这种方式启动应用程序时,我的应用程序资源字典是空的(如果我通过我的App.xml启动应用程序,它们确实已填满)。

我应该在Application对象上调用特定方法来强制它加载.xaml文件中定义的资源字典吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

回答我自己的问题以防万一有人绊倒

似乎调用myApp.InitializeComponent()就足够了,默认构造函数不会调用它。可以更快地弄明白。