2

我现在有一个带有德语变音符号(如下)的 xaml,当我尝试解析它时,我得到一个 invalidchar 错误。

当我不使用 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 String UTF-16)我做错了什么?

我还尝试使用 XmlParserContext 注入编码。

    var xmlcontext = new XmlParserContext(null, null, null, XmlSpace.Preserve,
                                          Encoding.Unicode);

    var context = new ParserContext(xmlcontext);

但这没有帮助:-(

我需要做什么?是否有某种 XAML 编码?

4

1 回答 1

5

回答我自己的问题希望没问题。

对我有帮助的是使用

System.Windows.Markup.XamlReader.Load(stream,XamlParserContext)

方法。

s。http://msdn.microsoft.com/de-de/library/ms590388.aspx

这种方法似乎尊重字符串变量的编码。

我仍然不明白为什么这不适用于静态 ParseMethod。但我希望这个解决方案能帮助其他人安全时间:-)

于 2013-02-26T07:28:19.673 回答