如何保存名为“x: synchronousmode”的属性?到一个xaml文件

本文关键字:属性 xaml 一个 文件 保存 何保存 synchronousmode | 更新日期: 2023-09-27 18:12:01

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

然后,我们想要异步加载它(这个xaml文件),我们使用LoadAsync()方法来做到这一点,现在的问题是我们可以手动将x:SynchronousMode='Async'写入文件,但是我们如何将这个属性直接保存到xaml文件(当我们序列化它时)?

来自MSDN的指令:

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

如何保存名为“x: synchronousmode”的属性?到一个xaml文件

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

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文件