2008-10-06 95 views
2

有沒有人找到一種方法將FlowDocument保存爲BAML或其他壓縮格式?我可以導入XML用圖像來創建一個新的FlowDocument:我可以以編程方式將FlowDocument保存到BAML嗎?

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

不過,我還沒有找到一個很好的方式將其保存在一個「天然」壓縮格式。無壓縮的XAML很容易生成使用:

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

但是有沒有任何編程方法將其保存爲壓縮格式?

如果沒有現有的方法,是否有人知道在哪裏可以找到一個編程式的XAML編譯器?甚至只是BAML規格?我可以通過編程方式生成一個嵌入了FlowDocument的整個XAML窗口,但我仍然希望將XAML轉換爲BAML以加快載入時間。我使用的是相對較大的rtf文件,使用DataFormats.Rtf的轉換時間非常重要。

回答

1

我不認爲這是可能的...... BamlWriter被標記爲內部,這將很快有望開放!

不幸的是我不知道任何XAML編譯器

0

的嘛,原來你可以W/O的GUI運行Visual C#2008 Express的。你也可以在編譯之前通過代碼修改最終的程序名。我相信你可以通過API來做到這一點,但是我發現這裏有一些破解:

  1. 該程序的名稱是由.csproj在xml標記中確定的。
  2. 通過代碼或批處理文件運行: 「\ Common7 \ IDE \ vcsexpress」 「的.sln」/重建發佈/ projectconfig發佈/出ERRORS.TXT

我喜歡研究,然後刪除ERRORS.TXT每次運行後,讓我更容易看到我是否有一個乾淨的構建。這並不理想,因爲您必須在每臺使用此方法的計算機上安裝完整版本的Visual C#2008,但這是一種創建新的可執行文件以便以編程方式顯示每個流文檔的方法。另外,如果您的XAML中存在錯誤,則可能會生成一個無法運行的程序。

請注意,BAML格式不壓縮文本,只有標籤和其他'管道'。即使邊距和填充信息也以清晰的ASCII碼保存。這是由最後的.exe遺留下來的文本清晰可見的部分記事本或類似的。

0

的XamlPackage格式壓縮:

<TextRange class instance>.Save(fs, DataFormats.Xaml); 
相關問題