2

FlowDocumentをBAMLまたはその他の圧縮形式で保存する方法を見つけた人はいますか?画像付きのXMLをインポートして、新しいFlowDocumentを作成できます。

<TextRange class instance>.Load(fs, DataFormats.Rtf)

ただし、「ネイティブ」圧縮形式で保存するための適切な方法は見つかりませんでした。非圧縮XAMLは、次を使用して簡単に生成できます。

<TextRange class instance>.Save(fs, DataFormats.Xaml);

しかし、それを圧縮形式で保存するためのプログラム的な方法はありますか?

既存のメソッドがない場合、プログラムによるXAMLコンパイラの場所を知っている人はいますか?それともBAML仕様だけですか?FlowDocumentが埋め込まれたXAMLウィンドウ全体をプログラムで生成することもできますが、ロード時間を短縮するためにXAMLをBAMLに変換したいと思います。私は比較的大きなrtfドキュメントを使用しており、DataFormats.Rtfを使用した変換時間は重要です。

4

3 に答える 3

1

私はそれが可能だとは思いません... BamlWriter は内部としてマークされています。これはすぐに開かれることを願っています!

残念ながら、XAML コンパイラについては知りません。

于 2008-10-07T06:12:29.713 に答える
0

XamlPackage 形式は圧縮されています。

<TextRange class instance>.Save(fs, DataFormats.Xaml);
于 2008-11-26T13:45:33.053 に答える
0

さて、GUI なしで Visual C# 2008 Express を実行できることがわかりました。また、コンパイルする前に、コードを介して最終的なプログラム名を変更することもできます。API経由でできると確信していますが、私が見つけたハックは次のとおりです。

  1. プログラムの名前は、xml タグの .csproj で決定されます。
  2. コードまたはバッチ ファイルで実行: "\Common7\IDE\vcsexpress" ".sln" /rebuild Release /projectconfig Release /out errors.txt

私は毎回実行後にerrors.txtを調べて削除し、ビルドがクリーンかどうかを簡単に確認できるようにしています。この方法で使用する各マシンに Visual C# 2008 のフルバージョンを購入する必要があるため、これは理想的ではありませんが、プログラムで各フロー ドキュメントを表示する新しい実行可能ファイルを作成する方法です。また、XAML にエラーがある場合、実行できないプログラムが生成される可能性があります。

BAML 形式はテキストを圧縮せず、タグとその他の「配管」のみを圧縮することに注意してください。Margin と Padding の情報もクリア ASCII で保存されます。これは末尾の .exe に継承され、メモ帳などのセクションにテキストがはっきりと表示されます。

于 2008-10-08T18:25:45.050 に答える