我使用此处的代码(来自 Wiimax 的答案)将我的转换FlowDocument
为XML
并将其转换回FlowDocument
. 但现在我这里有一些问题。
我的转换代码:
public static bool IsFlowDocument(this string xamlString)
{
if (xamlString == null || xamlString == "")
throw new ArgumentNullException();
if (xamlString.StartsWith("<") && xamlString.EndsWith(">"))
{
XmlDocument xml = new XmlDocument();
try
{
xml.LoadXml(string.Format("<Root>{0}</Root>", xamlString));
return true;
}
catch (XmlException)
{
return false;
}
}
return false;
}
public static FlowDocument toFlowDocument(this string xamlString)
{
if (IsFlowDocument(xamlString))
{
var stringReader = new StringReader(xamlString);
var xmlReader = System.Xml.XmlReader.Create(stringReader);
return XamlReader.Load(xmlReader) as FlowDocument;
}
else
{
Paragraph myParagraph = new Paragraph();
myParagraph.Inlines.Add(new Run(xamlString));
FlowDocument myFlowDocument = new FlowDocument();
myFlowDocument.Blocks.Add(myParagraph);
return myFlowDocument;
}
}
我输入此代码(例如,它不是我在程序中使用的代码):
转换后我得到这个代码:
您会看到跳过了一些空白。在命名空间之后添加了一个 { } 我查看了转换后的 XML 字符串,没有跳过空白,但是 { } 是他们的
有人知道如何解决这个问题或看到我的失败吗?