我正在尝试使用以下简单代码序列化/反序列化一些 Xaml:
object clone;
using ( var stream = new MemoryStream() )
{
System.Windows.Markup.XamlWriter.Save( myStackPanel, stream );
stream.Seek( 0, SeekOrigin.Begin );
clone = System.Windows.Markup.XamlReader.Load( stream );
}
实际的 Xaml 很好,因为它已经呈现到 UI。当我尝试反序列化一个完全有效的 StackPanel 时,它会引发 XamlParseException:
“向'System.Windows.ResourceDictionary'类型的字典添加值引发异常。”
内部异常消息是:
“项目已添加。字典中的键:'Field' 正在添加的键:'Field'”
当我检查序列化的 Xaml 时,没有重复的资源;有一个带有 x:Key="Field" 的 Style 元素。