5

次のように始まる Xaml ファイルを取得しました。

  <FlowDocument
       x:Name="flowDocument"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:Drawing="clr-namespace:System.Drawing;assembly=System.Drawing"

現在のソリューションでは、flowdocument で xaml ファイルの物理パスを参照して StremReader を使用し、データをテンプレートに解析します。

これは有効な解決策ではないため、物理パスを参照せずにフロー ドキュメントを取得する必要があります。

C# コードで xmlns 名前空間などを使用したいと思います。

string result = XamlWriter.Save(flowDocument)

そして、結果を解析に使用します。

提案?

4

1 に答える 1

6

私の理解が正しければ、文字列から FlowDocument を取得しますか? あなたはこれを行うことができますXamlReader.Parse

string result = XamlWriter.Save(flowDocument);
FlowDocument new_doc = (FlowDocument)XamlReader.Parse(result);

編集: XAML ファイルがプロジェクトの一部である場合は、それを EmbeddedResource としてマークし、次を使用して読み込むことができます。

Stream doc_stream = Assembly.GetExecutingAssembly()
                            .GetManifestResourceStream("YourNamespace.YourFile.xaml");
FlowDocument doc = (FlowDocument)XamlReader.Load(doc_stream);
于 2009-05-22T12:48:31.450 に答える