为什么在WPF中使用字符' ',十六进制值0x0C会被视为无效字符。在第一行第一列抛出异常。

15
当我将一个xxxx.XAML加载到WPF框架中时,它会抛出错误' ', hexadecimal value 0x0C, is an invalid character. Line 1, position 1. 如何查找引起问题的原因。当该xxxx.XAML位于另一个项目的起始页中时,它可以正常工作,但是当我将xxxx.XAML的内容加载到另一个项目中时,它会抛出错误,为什么会这样?
另外,我将我的项目从vs 2010升级到vs 2012。

问题是由以换页符开头的文件引起的。识别这个问题不应该太难。 - user207421
3
对我来说,解决这个问题的方法是将XAML文件属性中的“Build Action”从“Page”设置为“Resource”。 - Jonathan Perry
1
对我有用的是在我的.xaml文件末尾添加额外的回车和换行符。它们是看不见的,很难注意到,但当我将它们删除时,这个错误就消失了。 - Ray
2个回答

13

在我的情况下,我想使用以下代码加载XAML文件,但它的构建操作设置为页面而不是资源:

Uri uri = new Uri(resourcePath, System.UriKind.Relative);
Stream stream = Application.GetResourceStream(uri).Stream;
UIElement view = (UIElement)XamlReader.Load(stream);
stream.Close();

2
不仅需要将“Page”更改为“Resource”,还需要将“Custom Tool”从“MSBuild:Compile”更改为空。 - Cel
谢谢,非常感谢!我已经为这个简单的任务苦苦挣扎了几个小时了,我开始变得愤怒了,但现在我很开心 :) - Hector Lazarin

3

我的文件名中含有大写的X,而在读取加载文件时使用小写的x,所以会导致问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接