私は自分のアプリケーションのヘルプをしようとしています。私はdocumentviewerにロードしているxpsドキュメントを持っています。これらのファイルはリソースファイルに埋め込まれています。埋め込みリソースからドキュメントビューアにXPSをロードしてください
私はbytearrayとしてこれらにアクセスできます。 たとえば Properties.Resources.help_sudoku_methods_2戻り、[]
しかし、DocumentViewerのカントそれを読み、FixedDocumentSequenceにする必要バイト。 だから私はxpsdocumentその後、ByteArrayのからメモリストリームを作成し、このようにFixedDocumentSequenceに:
private void loadDocument(byte[] sourceXPS)
{
MemoryStream ms = new MemoryStream(sourceXPS);
const string memoryName = "memorystream://ms.xps";
Uri memoryUri = new Uri(memoryName);
try
{
PackageStore.RemovePackage(memoryUri);
}
catch (Exception)
{ }
Package package = Package.Open(ms);
PackageStore.AddPackage(memoryUri, package);
XpsDocument xps = new XpsDocument(package, CompressionOption.SuperFast, memoryName);
FixedDocumentSequence fixedDocumentSequence = xps.GetFixedDocumentSequence();
doc.Document = fixedDocumentSequence;
}
これは、ファイル内の画像がある場合、非常に汚れたaproachともdoesntの仕事である - の代わりに、画像が新しい文書に最初から画像を表示します読み込まれたドキュメント。
埋め込みリソースからXPSをドキュメントビューアに読み込む方法はありますか?または私はリソースからアプリケーションディレクトリへのコピーファイルやmemorystreamではなくここからロードするような何かを必要としますか?ありがとうございました。
例です。http://geekswithblogs.net/shahed/archive/2007/09/22/115540.aspx –
実際に私は自分のソリューションを構築するために、この記事を使用していました。私は1つのファイルがあるときにうまく動作しますが、1つのファイルを別のファイルにロードしているときはうまく動作しません。 –