現在,我試着解析它時遇到了帶有德語變音符號(s。below)的xaml,我收到了一個invalidchar錯誤。XamlReader和Umlauts
當我不使用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編碼?
xaml只是xml;你有沒有嘗試添加(因爲你說它是UTF-16)?<?xml version =「1.0」encoding =「UTF-16」?>'在開始時?當然,我假設它*實際上是UTF-16 ... – 2013-02-25 13:39:39
當您保存XAML文件時,是否使用8,16或32位編碼進行保存?請參閱http://stackoverflow.com/questions/10186484/i-cant-write-arabic-text-in-the-xaml-file – CalC 2013-02-25 13:45:22
它只是一個.net字符串,所以我假設UTF-16。 順便說一句,當我使用XamlReader.Load(Stream ...)ist的作品。真的很奇怪的行爲:-( – 2013-02-25 14:17:11