Hyperlink Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit un élément de contenu de niveau inline qui fournit des fonctionnalités d’hébergement de liens hypertexte.
public ref class Hyperlink sealed : Span
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Hyperlink final : Span
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Hyperlink : Span
Public NotInheritable Class Hyperlink
Inherits Span
<Hyperlink .../>
- Héritage
- Attributs
Exemples
Voici un exemple d’élément Hyperlink simple dans un TextBlock.
En XAML, la création d’éléments de contenu étant implicite, vous pouvez ajouter le texte du lien directement au lien hypertexte et le lien hypertexte directement à l’élément TextBlock .
Dans le code, vous devez créer explicitement chaque élément Run , définir sa propriété Text et l’ajouter à la collection Inlines appropriée (Hyperlink ou TextBlock).
<TextBlock><Hyperlink NavigateUri="http://www.bing.com">Go to Bing</Hyperlink></TextBlock>
// Create a TextBlock. The hyperlink is the TextBlock content.
TextBlock tb = new TextBlock();
// Create a Hyperlink and a Run.
// The Run provides the visible content of the hyperlink.
Hyperlink hyperlink = new Hyperlink();
Run run = new Run();
// Set the Text property on the Run. This will be the visible text of the hyperlink.
run.Text = "Go to Bing";
// Set the URI for the Hyperlink.
hyperlink.NavigateUri = new Uri("http://www.bing.com");
// Add the Run to Hyperlink.Inlines collection.
hyperlink.Inlines.Add(run);
// Add the text elements to the TextBlock.Inlines collection.
tb.Inlines.Add(hyperlink);
// Add the TextBlock to a StackPanel (defined in the XAML page).
stackPanel.Children.Add(tb);
Cet exemple montre un élément Hyperlink dans un TextBlock avec un autre texte.
En XAML, la création d’éléments de contenu étant implicite, vous pouvez ajouter le texte du lien directement au lien hypertexte. L’élément Span avec l’attribut xml:space="preserve"
est utilisé pour conserver l’espace blanc autour du lien hypertexte.
Dans le code, vous devez créer explicitement chaque élément Run , définir sa propriété Text et l’ajouter à la collection Inlines appropriée (Hyperlink ou TextBlock).
<TextBlock>
<Span xml:space="preserve"><Run>Open </Run><Hyperlink NavigateUri="http://www.bing.com">Bing</Hyperlink><Run> in your browser.</Run></Span>
</TextBlock>
// Create a TextBlock. The hyperlink is part of the TextBlock content.
// Set TextWrapping so that the text and the hyperlink wrap if the content is too wide.
TextBlock tb = new TextBlock();
tb.TextWrapping = TextWrapping.Wrap;
// Create a Hyperlink and a Run.
// The Run provides the visible content of the hyperlink.
Hyperlink hyperlink = new Hyperlink();
Run run = new Run();
// Set the Text property on the Run. This will be the visible text of the hyperlink.
run.Text = "Bing";
// Set the URI for the Hyperlink.
hyperlink.NavigateUri = new Uri("http://www.bing.com");
//Add the Run to Hyperlink.Inlines collection.
hyperlink.Inlines.Add(run);
// Create Run elements for the text around the hyperlink.
Run run1 = new Run();
Run run2 = new Run();
//Set the Text property on the Run elements.
run1.Text = "Open ";
run2.Text = " in your browser.";
// Add the text elements to the TextBlock.Inlines collection.
tb.Inlines.Add(run1);
tb.Inlines.Add(hyperlink);
tb.Inlines.Add(run2);
// Add the TextBlock to a StackPanel (defined in the XAML page).
stackPanel.Children.Add(tb);
Voici un exemple d’élément Hyperlink simple dans un TextBlock.
En XAML, la création d’éléments de contenu étant implicite, vous pouvez ajouter le texte du lien directement au lien hypertexte et le lien hypertexte directement à l’élément TextBlock . L’élément Span avec l’attribut xml:space="preserve"
est utilisé pour conserver l’espace blanc autour du lien hypertexte.
Dans le code, vous devez créer explicitement chaque élément de texte (par exemple , Run, Paragraph ou Italic) et l’ajouter à la collection Inlines appropriée.
<RichTextBlock>
<Paragraph>
<Span xml:space="preserve">
<Run>This shows a hyperlink in a paragraph of text. You can click it to open </Run><Hyperlink NavigateUri="http://www.bing.com" UnderlineStyle="None" FontWeight="SemiBold"><Italic>Bing</Italic></Hyperlink><Run> in your browser.</Run>
</Span>
</Paragraph>
</RichTextBlock>
// Create a RichTextBlock. The hyperlink is part of the content.
// Set TextWrapping so that the text and the hyperlink wrap if the content is too wide.
RichTextBlock rtb = new RichTextBlock();
rtb.TextWrapping = TextWrapping.Wrap;
// Create a Hyperlink and a Run.
// The Run provides the visible content of the hyperlink.
Hyperlink hyperlink = new Hyperlink();
Run run = new Run();
// Set the Text property on the Run. This will be the visible text of the hyperlink.
run.Text = "Bing";
// Set the URI and other properties for the Hyperlink.
hyperlink.NavigateUri = new Uri("http://www.bing.com");
hyperlink.UnderlineStyle = UnderlineStyle.None;
hyperlink.FontWeight = Windows.UI.Text.FontWeights.SemiBold;
//Add the Run to Hyperlink.Inlines collection.
hyperlink.Inlines.Add(run);
// Create an Italic element for the hyperlink.
Italic italic = new Italic();
italic.Inlines.Add(hyperlink);
// Create Run elements for the text around the hyperlinks.
// Set the Text property on the Run elements.
Run run1 = new Run();
Run run2 = new Run();
run1.Text = "This shows a hyperlink in a paragraph of text. You can click it to open ";
run2.Text = " in your browser.";
// Create a Paragraph to hold the RichTextBlock content.
Paragraph paragraph = new Paragraph();
// Add the text elements to the Paragraph.Inlines collection.
paragraph.Inlines.Add(run1);
paragraph.Inlines.Add(italic);
paragraph.Inlines.Add(run2);
//Add the paragraph to the RichTextBlock.
rtb.Blocks.Add(paragraph);
// Add the RichTextBlock to a StackPanel (defined in the XAML page).
stackPanel.Children.Add(rtb);
Remarques
Hyperlink et HyperlinkButton
Vous pouvez ajouter un lien hypertexte à une application XAML de deux façons. Hyperlink et HyperlinkButton ont l’objectif similaire de permettre à un utilisateur de lancer un URI spécifique à l’aide d’une application de navigateur distincte.+ Utilisez un élément de texte Hyperlink inline à l’intérieur d’un contrôle de texte. Un élément Hyperlink circule avec d’autres éléments de texte et vous pouvez l’utiliser dans n’importe quel InlineCollection.
- Utilisez un contrôle HyperlinkButton n’importe où dans l’application. Un HyperlinkButton est un contrôle Button spécialisé que vous pouvez utiliser n’importe où. Pour plus d’informations, consultez HyperlinkButton.
Lien hypertexte inline
Vous utilisez l’élément Hyperlink pour ajouter du texte interactif au contenu d’un Objet TextBlock ou RichTextBlock. Hyperlink est dérivé de la classe Inline . Vous pouvez donc la placer à l’intérieur de n’importe quel conteneur dont la propriété InlineCollection est InlineCollection , telle que TextBlock, Paragraph ou Span.
Conseil
Lorsque vous utilisez un lien hypertexte dans un conteneur Span avec d’autres éléments de texte en XAML, appliquez l’attribut xml:space="preserve"
à span pour conserver l’espace entre le lien hypertexte et les autres éléments.
Accéder à un URI
Pour utiliser le lien hypertexte pour accéder à un URI (Uniform Resource Identifier), définissez la propriété NavigateUri . Lorsqu’un utilisateur clique ou appuie sur l’élément Hyperlink, l’URI (Uniform Resource Identifier) spécifié s’ouvre dans le navigateur par défaut. Le navigateur par défaut s’exécute dans un processus distinct de votre application.
Conseil
Vous n’êtes pas tenu d’utiliser les schémas http: ou https:. Vous pouvez utiliser des schémas tels que ms-appx:, ms-appdata: ou ms-ressources: si le contenu des ressources à ces emplacements peut être chargé dans un navigateur. Toutefois, le schéma file: est bloqué. Pour plus d’informations, voir Schémas d’URI.
Lorsqu’un utilisateur clique sur le lien hypertexte, la valeur de la propriété NavigateUri est passée à un gestionnaire système pour les types et schémas URI (Uniform Resource Identifier). Le système lance ensuite l’application inscrite pour le schéma de l’URI (Uniform Resource Identifier) fourni pour NavigateUri.
Si vous ne souhaitez pas que le lien hypertexte charge du contenu dans un navigateur web par défaut (et que vous ne souhaitez pas qu’un navigateur apparaisse), ne définissez pas de valeur pour NavigateUri. Au lieu de cela, gérez l’événement Click et écrivez du code qui fait ce que vous voulez.
Gérer l’événement Click
Utilisez l’événement Click pour les actions autres que le lancement d’un URI (Uniform Resource Identifier) dans un navigateur, comme la navigation au sein de l’application. Par exemple, si vous souhaitez charger une nouvelle page d’application au lieu d’ouvrir un navigateur, appelez une méthode Frame.Navigate dans votre gestionnaire d’événements Click pour accéder à la nouvelle page d’application. Si vous souhaitez qu’un URI (Uniform Resource Identifier) externe et absolu soit chargé dans un contrôle WebView2 qui existe également dans votre application, appelez WebView2.NavigateToString(System.String) dans le cadre de votre logique de gestionnaire Click .
En règle générale, vous ne gérez pas l’événement Click et vous spécifiez une valeur NavigateUri , car elles représentent deux façons différentes d’utiliser l’élément Hyperlink. Si votre intention est d’ouvrir l’URI dans le navigateur par défaut et que vous avez spécifié une valeur pour NavigateUri, ne gérez pas l’événement Click . À l’inverse, si vous gérez l’événement Click , ne spécifiez pas de NavigateUri.
Vous ne pouvez rien faire dans le gestionnaire d’événements Click pour empêcher le navigateur par défaut de charger une cible valide spécifiée pour NavigateUri ; cette action se produit automatiquement (de façon asynchrone) lorsque le lien hypertexte est activé et ne peut pas être annulé à partir du gestionnaire d’événements Click .
Limitations des liens hypertexte
Étant donné qu’un lien hypertexte n’est pas un élément UIElement, il n’a pas le jeu d’événements d’entrée d’élément d’interface utilisateur tels que Tapped, PointerPressed , etc. Au lieu de cela, un lien hypertexte a son propre événement Click , plus le comportement implicite du système qui charge n’importe quel URI (Uniform Resource Identifier) spécifié en tant que NavigateUri. Le système gère toutes les actions d’entrée qui doivent appeler les actions Hyperlink et déclenche l’événement Click en réponse.
L’élément Hyperlink a des restrictions sur le contenu qui peut exister dans sa collection Inlines. Plus précisément, un élément Hyperlink autorise uniquement les types Run et d’autres types Span qui ne sont pas un autre élément Hyperlink. InlineUIContainer ne peut pas se trouver dans la collection Inlines d’un lien hypertexte. Toute tentative d’ajout de contenu restreint lève une exception d’argument invalide ou une exception d’analyse XAML.
Élément Hyperlink et comportement de thème/style
L’élément Hyperlink n’hérite pas de Control, il n’a donc pas de propriété Style ni de Template. Vous pouvez modifier les propriétés héritées de TextElement, telles que Foreground ou FontFamily, pour modifier l’apparence d’un lien hypertexte, mais vous ne pouvez pas utiliser un style ou un modèle commun pour appliquer des modifications. Au lieu d’utiliser un modèle, pensez à utiliser des ressources communes pour les valeurs des propriétés de l’élément Hyperlink afin de garantir la cohérence. Certaines propriétés de Hyperlink utilisent les valeurs par défaut d’une valeur d’extension de balisage {ThemeResource} fournie par le système. Cela permet à l’apparence de l’élément Hyperlink de s’adapter aux modifications du thème du système apportées par l’utilisateur au moment de l’exécution.
La couleur par défaut du lien hypertexte est la couleur d’accentuation du système. Vous pouvez définir la propriété Foreground pour remplacer celle-ci.
Par défaut, Hyperlink est souligné. Ce trait de soulignement est important, car il permet de répondre aux exigences d’accessibilité. Les utilisateurs daltoniens utilisent le trait de soulignement pour distinguer les liens hypertexte du reste du texte. Vous pouvez définir la propriété UnderlineStyle pour désactiver le trait de soulignement. Si vous désactivez les soulignements, vous devez envisager d’ajouter un autre type de différence de mise en forme pour distinguer les liens hypertexte des autres textes, tels que FontWeight ou FontStyle.
Constructeurs
Hyperlink() |
Initialise une nouvelle instance de la classe Hyperlink. |
Propriétés
AccessKey |
Obtient ou définit la clé d’accès pour cet élément. (Hérité de TextElement) |
AccessKeyScopeOwner |
Obtient ou définit un élément source qui fournit l’étendue de la clé d’accès pour cet élément, même s’il ne se trouve pas dans l’arborescence visuelle de l’élément source. (Hérité de TextElement) |
AllowFocusOnInteraction |
Obtient ou définit une valeur qui indique si l’élément obtient automatiquement le focus lorsque l’utilisateur interagit avec lui. (Hérité de TextElement) |
CharacterSpacing |
Obtient ou définit l’espacement uniforme entre les caractères, en unités de 1/1000 d’un em. (Hérité de TextElement) |
ContentEnd |
Obtient un TextPointer qui représente la fin du contenu dans l’élément . (Hérité de TextElement) |
ContentStart |
Obtient un TextPointer qui représente le début du contenu dans l’élément . (Hérité de TextElement) |
Dispatcher |
Retourne |
DispatcherQueue |
Obtient le |
ElementEnd |
Obtient un TextPointer qui représente la position juste après la fin de l’élément. (Hérité de TextElement) |
ElementSoundMode |
Obtient ou définit une valeur qui spécifie la préférence du contrôle pour savoir s’il lit des sons. |
ElementSoundModeProperty |
Identifie la propriété de dépendance ElementSoundMode . |
ElementStart |
Obtient un TextPointer qui représente la position juste avant le début de l’élément. (Hérité de TextElement) |
ExitDisplayModeOnAccessKeyInvoked |
Obtient ou définit une valeur qui spécifie si l’affichage de la clé d’accès est ignoré lorsqu’une clé d’accès est appelée. (Hérité de TextElement) |
FocusState |
Obtient une valeur qui spécifie si ce lien hypertexte a le focus et le mode par lequel le focus a été obtenu. |
FocusStateProperty |
Identifie la propriété de dépendance FocusState . |
FontFamily |
Obtient ou définit la famille de polices de niveau supérieur par défaut pour le contenu de l’élément. (Hérité de TextElement) |
FontSize |
Obtient ou définit la taille de police pour le contenu de l’élément. (Hérité de TextElement) |
FontStretch |
Obtient ou définit la largeur des glyphes de la police dans une famille à sélectionner. (Hérité de TextElement) |
FontStyle |
Obtient ou définit le style de police du contenu de cet élément. (Hérité de TextElement) |
FontWeight |
Obtient ou définit le poids de police de niveau supérieur à sélectionner dans la famille de polices pour le contenu de cet élément. (Hérité de TextElement) |
Foreground |
Obtient ou définit le pinceau à appliquer au contenu de cet élément. (Hérité de TextElement) |
Inlines |
Obtient une inlineCollection contenant les éléments inline de niveau supérieur qui incluent le contenu de Span. (Hérité de Span) |
IsAccessKeyScope |
Obtient ou définit une valeur qui indique si un élément définit sa propre étendue de clé d’accès. (Hérité de TextElement) |
IsTabStop |
Obtient ou définit une valeur qui indique si le lien hypertexte est inclus dans la navigation par onglet. |
IsTabStopProperty |
Identifie la propriété de dépendance IsTabStop. |
IsTextScaleFactorEnabled |
Obtient ou définit si l’agrandissement automatique du texte, pour refléter le paramètre de taille de texte système, est activé. (Hérité de TextElement) |
KeyTipHorizontalOffset |
Obtient ou définit une valeur qui indique à quelle distance à gauche ou à droite l’info-bulle est placée par rapport à l’élément de texte. (Hérité de TextElement) |
KeyTipPlacementMode |
Obtient ou définit une valeur qui indique où l’info-bulle est placée par rapport à l’élément de texte. (Hérité de TextElement) |
KeyTipVerticalOffset |
Obtient ou définit une valeur qui indique jusqu’à quel point l’info-bulle est placée par rapport à l’élément de texte. (Hérité de TextElement) |
Language |
Obtient ou définit des informations de langue de localisation/globalisation qui s’appliquent à un TextElement. (Hérité de TextElement) |
Name |
Obtient ou définit une identification unique pour l’objet . Le nom ne peut être défini qu’à partir de l’analyse initiale de XAML. (Hérité de TextElement) |
NavigateUri |
Obtient ou définit l’URI (Uniform Resource Identifier) auquel accéder lorsque le lien hypertexte est activé. |
NavigateUriProperty |
Identifie la propriété de dépendance NavigateUri . |
TabIndex |
Obtient ou définit une valeur qui détermine l’ordre dans lequel les éléments reçoivent le focus lorsque l’utilisateur navigue dans les contrôles en appuyant sur la touche Tab. |
TabIndexProperty |
Identifie la propriété de dépendance TabIndex. |
TextDecorations |
Obtient ou définit une valeur qui indique les décorations appliquées au texte. (Hérité de TextElement) |
UnderlineStyle |
Obtient ou définit une valeur qui indique le type de soulignement affiché sous le lien hypertexte. |
UnderlineStyleProperty |
Identifie la propriété de dépendance UnderlineStyle . |
XamlRoot |
Obtient ou définit le XamlRoot dans lequel cet élément est consulté. (Hérité de TextElement) |
XYFocusDown |
Obtient ou définit l’objet qui obtient le focus lorsqu’un utilisateur appuie sur le pavé directionnel (DPAD) vers le bas. |
XYFocusDownNavigationStrategy |
Obtient ou définit une valeur qui spécifie la stratégie utilisée pour déterminer l’élément cible d’une navigation vers le bas. |
XYFocusDownNavigationStrategyProperty |
Identifie la propriété de dépendance XYFocusDownNavigationStrategy . |
XYFocusDownProperty |
Identifie la propriété de dépendance XYFocusDown . |
XYFocusLeft |
Obtient ou définit l’objet qui obtient le focus lorsqu’un utilisateur appuie sur le pavé directionnel (DPAD) gauche. |
XYFocusLeftNavigationStrategy |
Obtient ou définit une valeur qui spécifie la stratégie utilisée pour déterminer l’élément cible d’une navigation de gauche. |
XYFocusLeftNavigationStrategyProperty |
Identifie la propriété de dépendance XYFocusLeftNavigationStrategy . |
XYFocusLeftProperty |
Identifie la propriété de dépendance XYFocusLeft . |
XYFocusRight |
Obtient ou définit l’objet qui obtient le focus lorsqu’un utilisateur appuie sur le pavé directionnel (DPAD) vers la droite. |
XYFocusRightNavigationStrategy |
Obtient ou définit une valeur qui spécifie la stratégie utilisée pour déterminer l’élément cible d’une navigation droite. |
XYFocusRightNavigationStrategyProperty |
Identifie la propriété de dépendance XYFocusRightNavigationStrategy . |
XYFocusRightProperty |
Identifie la propriété de dépendance XYFocusRight . |
XYFocusUp |
Obtient ou définit l’objet qui obtient le focus lorsqu’un utilisateur appuie sur le pavé directionnel (DPAD) vers le haut. |
XYFocusUpNavigationStrategy |
Obtient ou définit une valeur qui spécifie la stratégie utilisée pour déterminer l’élément cible d’une navigation vers le haut. |
XYFocusUpNavigationStrategyProperty |
Identifie la propriété de dépendance XYFocusUpNavigationStrategy . |
XYFocusUpProperty |
Identifie la propriété de dépendance XYFocusUp . |
Méthodes
ClearValue(DependencyProperty) |
Efface la valeur locale d’une propriété de dépendance. (Hérité de DependencyObject) |
FindName(String) |
Récupère un objet dans le graphe d’objet du modèle objet/runtime en référençant la valeur d’attribut x:Name ou Name de l’objet. (Hérité de TextElement) |
Focus(FocusState) |
Tente de définir le focus sur le lien hypertexte. |
GetAnimationBaseValue(DependencyProperty) |
Retourne toute valeur de base établie pour une propriété de dépendance, qui s’appliquerait dans les cas où une animation n’est pas active. (Hérité de DependencyObject) |
GetValue(DependencyProperty) |
Retourne la valeur effective actuelle d’une propriété de dépendance à partir d’un DependencyObject. (Hérité de DependencyObject) |
OnDisconnectVisualChildren() |
Remplacez cette méthode pour implémenter le comportement de la disposition et de la logique lorsque des éléments sont supprimés d’un contenu ou d’une propriété enfant spécifique à une classe. (Hérité de TextElement) |
ReadLocalValue(DependencyProperty) |
Retourne la valeur locale d’une propriété de dépendance, si une valeur locale est définie. (Hérité de DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Inscrit une fonction de notification pour écouter les modifications apportées à un DependencyProperty spécifique sur ce instance DependencyObject. (Hérité de DependencyObject) |
SetValue(DependencyProperty, Object) |
Définit la valeur locale d’une propriété de dépendance sur un DependencyObject. (Hérité de DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Annule une notification de modification précédemment inscrite en appelant RegisterPropertyChangedCallback. (Hérité de DependencyObject) |
Événements
AccessKeyDisplayDismissed |
Se produit lorsque la séquence de touches d’accès est terminée pour avertir les contrôles qu’ils doivent masquer les visuels de clé d’accès. (Hérité de TextElement) |
AccessKeyDisplayRequested |
Se produit lorsque la séquence de touches d’accès est démarrée pour avertir les contrôles qu’ils doivent afficher des visuels de clé d’accès. (Hérité de TextElement) |
AccessKeyInvoked |
Se produit lorsqu’un utilisateur termine une séquence de touches d’accès pour informer l’élément que l’action de clé d’accès doit être appelée. (Hérité de TextElement) |
Click |
Se produit lorsque l’utilisateur clique sur le lien hypertexte . |
GotFocus |
Se produit lorsqu’un lien hypertexte reçoit le focus. |
LostFocus |
Se produit lorsqu’un lien hypertexte perd le focus. |