Tout marche au poil excepté les liens hypertexte. Lorsque j'essaie d'en charger un, VS me lève deux exceptions:
"Impossible d'établir une liaison avec la méthode cible, car sa signature ou sa transparence de sécurité n'est pas compatible avec celle du type délégué." (System.ArgumentException)
"Échec de la création d'un 'RequestNavigate' à partir du texte 'Hyperlink_RequestNavigate'." (System.Xaml.XamlObjectWriterException)
J'ai créé une fonction:
1 2 3 4 5
|
Sub Hyperlink_RequestNavigate(sender As Object, e As RequestNavigateEventArgs)
Process.Start(New ProcessStartInfo(e.Uri.AbsoluteUri))
e.Handled = True
End Sub |
Le code qui charge le xaml:
1 2 3 4 5 6 7
| Dim rawText As String = tips(rInt)
Dim xaml As String = "<TextBlock xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"" >" & rawText & "</TextBlock>"
' Cet appel est requis par le concepteur.
'Dim tb as textblock plus haut dans le code
tb = DirectCast(System.Windows.Markup.XamlReader.Parse(xaml), TextBlock)
txtblk.Inlines.Clear()
txtblk.Inlines.AddRange(tb.Inlines.ToList()) |
Et la déclaration du textblock "en dur" dans mon xaml:
<TextBlock x:Name="txtblk" Margin="92,0,79,0" FontSize="12" Foreground="#FF3F3F3F" Background="{x:Null}" TextWrapping="Wrap" ScrollViewer.VerticalScrollBarVisibility="Disabled" ></TextBlock>
Seuls les textes avec url ne passent pas. Tous les inlines de type "spans" sont interprétés correctement
Un exemple des textes que je charge (les double quotes n'ont pas besoin d'escape lorsque je charge le texte depuis une ressource.)
Ce logiciel est vraiment bien.<Hyperlink RequestNavigate="Hyperlink_RequestNavigate" NavigateUri="https://www.google.com">Consultez notre guide pour en savoir plus.</Hyperlink>
Partager