在我们的软件中,我们可以绘制或编辑形状并将其保存为xaml。
然后,我们要异步加载它(这个xaml文件),我们使用LoadAsync()
方法来执行此操作,现在问题是我们可以手动将x:SynchronousMode='Async'
写入文件,但是我们怎么能直接将此属性保存到xaml文件中(当我们序列化它时)?
来自MSDN的instruction:
为了使LoadAsync异步加载XAML输入,根目录 XAML输入中的元素必须包含属性和值 ×:SynchronousMode ="异步"
答案 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文件。