ここからのコード(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文字列を調べたところ、スキップされた空白はありませんが、{}は
誰かがそれを修正する方法を知っていますか、それとも私からの失敗を見ますか?