3

尝试在代码中加载 generic.xaml,但会引发 XamlParseException。代码如下:

Uri uri = new Uri("Themes/Generic.xaml", UriKind.Relative);
StreamResourceInfo info = Application.GetResourceStream(uri);
System.Windows.Markup.XamlReader reader = new System.Windows.Markup.XamlReader();

ResourceDictionary resdict = (ResourceDictionary)reader.LoadAsync(info.Stream);

this.Resources.MergedDictionaries.Add(resdict);

这个想法是在一个基本页面中合并一个资源字典。然后派生的页面可以使用例如,从它们的基类中使用样式、颜色、画笔等{StaticResource DarkBrush}

但是上面的代码抛出:

'',十六进制值 0x0C,是无效字符。第 1 行,位置 1。

generic.xaml 文件是在 VS2010 中以标准方式创建的。试图将 Build Action 设置为 Resource 但这也不起作用......

我从 Microsoft获得了代码示例。在那里它被用来加载一个页面。任何帮助将不胜感激。

4

1 回答 1

5
        Uri uri = new Uri("Themes/Generic.xaml", UriKind.RelativeOrAbsolute);
        var resDict = Application.LoadComponent(uri) as ResourceDictionary;
        this.Resources.MergedDictionaries.Add(resDict);
于 2011-10-18T11:07:02.133 回答