现在我得到了一个带有德语umlaut (s. )的xaml,当我试图解析它时,我会得到一个无效字符错误。
当我不使用XamlParser上下文时,它可以工作。但是我必须使用它来设置一些类型映射。
XAML:
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:test="clr-namespace:BR.UI.Tests.Items;assembly=BR.UI.ViewLocator.Tests"
mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300">
<UserControl.DataContext>
<test:SampleViewModel />
</UserControl.DataContext>
<Grid>
<Label>ö</Label>
</Grid>
</UserControl>解析它的代码
var context = new ParserContext();
var result = System.Windows.Markup.XamlReader.Parse(xaml,context);我找不到任何东西来设置编码提示(这将是.net字符串UTF-16),我做错了什么?
我还尝试用XmlParserContext注入编码。
var xmlcontext = new XmlParserContext(null, null, null, XmlSpace.Preserve,
Encoding.Unicode);
var context = new ParserContext(xmlcontext);但没什么用:-
我该怎么办?有什么XAML编码吗?
发布于 2013-02-26 07:28:19
回答我自己的问题,希望这样可以。
对我有帮助的是用
System.Windows.Markup.XamlReader.Load(stream,XamlParserContext)
方法。
s. http://msdn.microsoft.com/de-de/library/ms590388.aspx
此方法似乎尊重字符串变量的编码。
我仍然不明白为什么静态ParseMethod不能工作。但我希望这个解决方案能帮助其他人获得安全的时间:-)
https://stackoverflow.com/questions/15067969
复制相似问题