在我的应用程序中,我必须在Program.Main()中创建主窗口(进而动态创建其他控件)。我在访问放置在App.xaml中的资源(例如样式)时遇到问题。 VS2010 IDE可以在其设计器中找到资源,但是当我运行应用程序时,我得到一个异常,即找不到给定的资源。
如果我将资源复制到特定的xaml文件(例如用户控件,窗口,页面等),那么资源正在按预期工作。但是,我想避免在每个使用它的xaml文件中复制单个资源。
另外,如果我创建一个非控制台应用程序(例如wpf),那么App.xaml中的相同资源可以正常工作。
有人可以指出我正确的方向吗? 感谢。
答案 0 :(得分:0)
感谢slugster的帖子Access ResourceDictionary items programmatically我能够在我的应用程序加载的事件中以编程方式加载资源。 例如:
ResourceDictionary dict = new ResourceDictionary();
dict.Source = new Uri("../Resources/PageDictionary.xaml", UriKind.Relative);
Application.Current.Resources.MergedDictionaries.Add(dict);
我不确定这是否是最佳解决方案,但它可以实现我想要的效果。