Рамка не переходит в закладку средства просмотра документов
У меня есть этот код, где я создаю XPS-документ и устанавливаю его в Средство просмотра документов, также Средство просмотра документов находится во фрейме, который позволяет мне перемещаться внутри средства просмотра к определенной закладке(согласно этой ссылке).
var fixedDocument = ...XPS document logic here...; // Set up fresh XpsDocument var stream = new MemoryStream(); var uri = new Uri("pack://document.xps", UriKind.Absolute); var package = Package.Open(stream, FileMode.Create, FileAccess.ReadWrite); PackageStore.AddPackage(uri, package); var xpsDoc = new XpsDocument(package, CompressionOption.NotCompressed, uri.AbsoluteUri); // Write FixedDocument to the XpsDocument var docWriter = XpsDocument.CreateXpsDocumentWriter(xpsDoc); docWriter.Write(fixedDocument); FixedDocumentSequence document = xpsDoc.GetFixedDocumentSequence(); viewer.DocFrame.Source = ((System.Windows.Markup.IUriContext)document).BaseUri; // Display XpsDocument in DocumentViewer viewer.Preview.Viewer.Document = xpsDoc.GetFixedDocumentSequence(); DocFrame.Source is correct "pack://pack:,,document.xps,/FixedDocumentSequence.fdseq"
Проблема заключается в том, что я пытаюсь перейти к определенной закладке в документе, например
var uri = new Uri("pack://pack:,,document.xps,/FixedDocumentSequence.fdseq#asd"); DocFrame.Navigate(uri);
Я получаю сообщение об ошибке " идентификатор приложения не установлен." Создается новый просмотрщик документов, но точка визуализации находится на самой верхней странице (по умолчанию), что означает, что она вообще не перемещается.
Что я уже пробовал:
var fixedDocument = ...XPS document logic here...; // Set up fresh XpsDocument var stream = new MemoryStream(); var uri = new Uri("pack://document.xps", UriKind.Absolute); var package = Package.Open(stream, FileMode.Create, FileAccess.ReadWrite); PackageStore.AddPackage(uri, package); var xpsDoc = new XpsDocument(package, CompressionOption.NotCompressed, uri.AbsoluteUri); // Write FixedDocument to the XpsDocument var docWriter = XpsDocument.CreateXpsDocumentWriter(xpsDoc); docWriter.Write(fixedDocument); FixedDocumentSequence document = xpsDoc.GetFixedDocumentSequence(); viewer.DocFrame.Source = ((System.Windows.Markup.IUriContext)document).BaseUri; // Display XpsDocument in DocumentViewer viewer.Preview.Viewer.Document = xpsDoc.GetFixedDocumentSequence(); DocFrame.Source is correct "pack://pack:,,document.xps,/FixedDocumentSequence.fdseq"