我正在尝试以编程方式设置当前的 WPF Application ResourceDictionary。(我有一个 WindForms 项目,所以没有“App.xaml”可以为我做这件事)。
注意:如果有人知道如何将 Application.Resources 的等效项绑定到 ElementHost及其所有子控件层次结构,这就是这里的最终目标。
我添加到我的代码中:
Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("/Middlewerks;component/Resources.xaml", UriKind.RelativeOrAbsolute) });
现在它在应用程序中完美运行,样式很好(即:网格的背景是红色的。这只是一种测试样式)。
但是如果我在设计器中打开这个表单,Visual Studio 就会发疯。整个橱窗都是我的风格!
这是一个屏幕截图:http ://localhostr.com/files/8368cc/Failure.jpg 很酷的部分是我发现了如何编辑 Visual Studio 2010 丑陋的蓝色皮肤。可悲的是,当我的客户在我的控制下开发时,他们不会感到高兴。
随意尝试并告诉我应该如何在不搞砸一切的情况下实现我的资源。
XAML 代码:(如屏幕截图所示)
编辑:这是我临时的、非常老套的解决方案,所以我可以继续开发。“Application.Current”在 Visual Studio 上工作确实很痛苦。
if (Application.Current.MainWindow == null || !Application.Current.MainWindow.Title.EndsWith(" - Microsoft Visual C# 2010 Express"))
{
Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("/Middlewerks;component/Resources.xaml", UriKind.RelativeOrAbsolute) });
}