使用wpf导航到xps文档中的链接

时间:2013-09-18 19:06:11

标签: wpf vb.net xps documentviewer

我试图在wpf中打开一个xps文档,将vb作为带有documentviewer的固定文档,然后导航到文档中的书签/链接。我已经解压缩了xps并找到了DocStucture.struct中的可用链接,但我不知道如何告诉文档查看器转到链接的位置。 documentviewer包含在窗口中的Frame中,我可以单击文档目录中的链接到不同的链接。目的是允许最终用户在他/她按下按钮时将文档打开到特定位置(该文档是用户指南)。

有人可以解释一下如何做到这一点吗? 谢谢!

编辑: 我已经尝试将链接打包成uri,但是我只能弄清楚如何使框架导航到uri而不是文档查看器:

包含用户手册的窗口的类:

Partial Public Class UserManual
    Private Sub DocViewer_Loaded(ByVal sender as Object, ByVal e as System.Windows.RoutedEventArgs)
        Dim documentName As String = "@.\User Manual.xps"
        Dim xpsDoc As XpsDocument
        xpsDoc = New XpsDocument(documentName, IO.FileAccess.Read)  
        DocViewer.Document = xpsDoc.GetFixedDocumentSequence
    End Sub
    Public Sub New()
        MyBase.New()
        Me.InitializeComponent()
    End Sub
End Class

在主窗口中将打开用户手册:

Private Sub Button_Click(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs)
    Dim UserManualWindow As UserManual = New UserManual
    UserManualWindow.Show()
    Dim uri = New Uri("pack://file:,,,/User Manual.xps#PG_8_LNK_94")
    UserManualWindow.DocFrame.Navigate(uri)
End Sub

这不起作用。框架只显示了uri的文本。我找不到类似于documentviewer的方法。 gotopage方法只接受页码,而不是链接。

1 个答案:

答案 0 :(得分:0)

所以我设法完成了它,并了解到我很接近。我只需要设置框架的来源,而不是命令框架导航到uri:

UserManualWindow.DocFrame.Source = uri

现在帧更新为xps文档中的正确片段。