Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
11 février 2011 5 11 /02 /février /2011 20:35

Et bien tout simplement parce que le documentViewer n’est pas un internet browser ou un frame et ne traite pas les hyperlinks par défaut.

Vous devez indiquer au documentViewer ce qu’il doit faire lorsque l’utilisateur clique sur un hyperlink dans un document XPS.

 

 

Voici l’exemple d’une fenêtre contenant un control documentViewer :

 

 

 Public Class WindowXPSViewer 
 
 
 Public Sub New(ByVal fPath As String) 
 
 ' This call is required by the designer. 
 InitializeComponent() 
 
 ' Add any initialization after the InitializeComponent() call. 
 
 
 
 Dim xps As New Xps.Packaging.XpsDocument(fPath, IO.FileAccess.Read) 
 
 DocumentViewerHelp.[AddHandler](Hyperlink.RequestNavigateEvent, New RequestNavigateEventHandler(AddressOf link_RequestNavigate)) 
 
 Me.DocumentViewerHelp.Document = xps.GetFixedDocumentSequence 
 
 Me.Title = My.Computer.FileSystem.GetFileInfo(fPath).Name 
 End Sub 
 
 Private Sub link_RequestNavigate(ByVal sender As Object, ByVal e As RequestNavigateEventArgs) 
 System.Diagnostics.Process.Start(e.Uri.ToString) 
 End Sub 
 
End Class

 

 

L’astuce réside dans le AddHandler qui va capturer l’évènement du clique sur l’hyperlink.

Partager cet article

Repost 0
Published by Cyril - dans WPF
commenter cet article

commentaires