如何保存名为" x:SynchronousMode"的属性。到一个xaml文件?

时间:2016-10-07 02:00:22

标签: c# wpf xaml asynchronous

在我们的软件中,我们可以绘制或编辑形状并将其保存为xaml。

然后,我们要异步加载它(这个xaml文件),我们使用LoadAsync()方法来执行此操作,现在问题是我们可以手动将x:SynchronousMode='Async'写入文件,但是我们怎么能直接将此属性保存到xaml文件中(当我们序列化它时)?

来自MSDN的instruction

  

为了使LoadAsync异步加载XAML输入,根目录   XAML输入中的元素必须包含属性和值   ×:SynchronousMode ="异步"

1 个答案:

答案 0 :(得分:0)

最后,我没有找到将属性添加到对象的方法,然后我使用了一种解决方法来通过以下代码解决此问题:

StringBuilder sb = new StringBuilder();
var xmlWriter = XmlWriter.Create(sb, settings);
XamlWriter.Save(Window, xmlWriter);
var str = sb.ToString().Insert(11, "assembly:SynchronousMode=\"Async\" ");
if (!File.Exists(path))
{
    FileStream tmp = File.Create(path);
    tmp.Close();
}
FileStream fs = new FileStream(path, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(str);
sw.Flush();
sw.Close();
fs.Close();

将它直接插入到我们将对象转换为XamlWriter的字符串中,然后将该字符串保存为xaml文件。