加载generic.xaml以合并资源字典时,XamlReader抛出

时间:2011-10-18 10:40:35

标签: wpf xamlparseexception xamlreader generic.xaml

尝试在代码中加载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,但这也不起作用......

我从微软获得了code sample。它用于加载页面。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:5)

        Uri uri = new Uri("Themes/Generic.xaml", UriKind.RelativeOrAbsolute);
        var resDict = Application.LoadComponent(uri) as ResourceDictionary;
        this.Resources.MergedDictionaries.Add(resDict);