2010-02-24 129 views
1

基本上我已經在包含XPSDocument查看器的WPF應用程序中嵌入了一個xps文件作爲資源。如何使用XPSDocument將包含在WPF應用程序中的XPS文件作爲二進制資源打開?

在加載應用程序時,我只想讓文檔查看器顯示該嵌入式資源。

public Page1() 
{ 
    InitializeComponent(); 
    XpsDocument doc = new XpsDocument(SmartsysBrowser.Properties.Resources.test1, FileAccess.Read); 
    docViewer.Document = doc.GetFixedDocumentSequence(); 
    docViewer.Focus(); 
} 

但是這個命令不會通過審覈

XpsDocument doc = new XpsDocument(SmartsysBrowser.Properties.Resources.test1, FileAccess.Read); 

我知道我需要鍵入XPS文檔的文件路徑,但因爲它是作爲資源嵌入,怎麼樣?

非常感謝大家。

背景: 我應該做一個應用程序,將顯示一個機密文件,並且由於限制其製作/打印/傳閱的副本也很重要,我決定使用ClickOnce WPF XBAP應用程序走。我的理由是,一旦從Web服務器中刪除應用程序,ClickOnce應用程序的所有副本都將變得毫無用處。此外,它似乎是保護機密文件最便宜和最可行的方式。請隨意提出替代方案。我一直熱衷於向大家學習。

回答

1

當您使用嵌入式資源(即非WPF資源)時,您可以使用Assembly.GetManifestResourceStream從您的資源名稱獲取Stream,然後使用靜態Package.Open獲取Package實例,然後您可以使用接受Package作爲參數的其他XpsDocument構造函數。

相關問題