2010-02-24 23 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构造函数。

相关问题