我有一个带有德语变音符号(下面的saml)的xaml,现在当我尝试解析它时,我得到一个invalidchar错误。
当我不使用XamlParser Context时,它可以工作。但我必须使用它来设置一些类型映射
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 String UTF-16)我做错了什么?
我还尝试使用XmlParserContext注入编码。
var xmlcontext = new XmlParserContext(null, null, null, XmlSpace.Preserve,
Encoding.Unicode);
var context = new ParserContext(xmlcontext);
但它没有帮助: - (
我需要做什么?是否有某种XAML编码?
答案 0 :(得分:5)
回答我自己的问题希望没问题。
对我有帮助的是使用
System.Windows.Markup.XamlReader.Load(stream,XamlParserContext)
方法
秒。 http://msdn.microsoft.com/de-de/library/ms590388.aspx
此方法似乎尊重字符串变量的编码。
我仍然不明白为什么这不适用于Static ParseMethod。但我希望这个解决方案可以帮助其他人安全的时间: - )