Hyperlink Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce un elemento di contenuto a livello inline che fornisce funzionalità per l'hosting di collegamenti ipertestuali.
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 .../>
- Ereditarietà
- Attributi
Esempio
Ecco un esempio di un semplice elemento Hyperlink in un oggetto TextBlock.
In XAML la creazione di elementi di contenuto è implicita, quindi è possibile aggiungere il testo del collegamento direttamente al collegamento ipertestuale e il collegamento ipertestuale direttamente all'elemento TextBlock .
Nel codice è necessario creare in modo esplicito ogni elemento Run , impostare la relativa proprietà Text e aggiungerla all'insieme Inlines appropriato (collegamento ipertestuale o 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);
In questo esempio viene visualizzato un elemento Hyperlink in textBlock con altro testo.
In XAML la creazione di elementi di contenuto è implicita, quindi è possibile aggiungere il testo del collegamento direttamente al collegamento ipertestuale. L'elemento Span con l'attributo xml:space="preserve"
viene usato per mantenere lo spazio vuoto intorno al collegamento ipertestuale.
Nel codice è necessario creare in modo esplicito ogni elemento Run , impostare la relativa proprietà Text e aggiungerla all'insieme Inlines appropriato (collegamento ipertestuale o 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);
Ecco un esempio di un semplice elemento Hyperlink in un oggetto TextBlock.
In XAML la creazione di elementi di contenuto è implicita, quindi è possibile aggiungere il testo del collegamento direttamente al collegamento ipertestuale e il collegamento ipertestuale direttamente all'elemento TextBlock . L'elemento Span con l'attributo xml:space="preserve"
viene usato per mantenere lo spazio vuoto intorno al collegamento ipertestuale.
Nel codice è necessario creare in modo esplicito ogni elemento di testo ,ad esempio Run, Paragraph o Italic, e aggiungerlo all'insieme Inlines appropriato.
<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);
Commenti
Collegamento ipertestuale e collegamentoipertestualeButton
Esistono due modi per aggiungere un collegamento ipertestuale a un'app XAML. Collegamento ipertestuale e HyperlinkButton hanno lo scopo simile di consentire a un utente di avviare un URI specifico usando un'app browser separata.+ Usare un elemento di testo Collegamento ipertestuale inline all'interno di un controllo di testo. Un elemento Hyperlink scorre con altri elementi di testo ed è possibile usarlo in qualsiasi InlineCollection.
- Usa un controllo HyperlinkButton in qualsiasi punto dell'app. HyperlinkButton è un controllo Button specializzato che è possibile usare ovunque si usi un controllo Button. Per altre info, vedi HyperlinkButton.
Collegamento ipertestuale inline
L'elemento Hyperlink consente di aggiungere testo interattivo al contenuto di un controllo TextBlock o RichTextBlock. Il collegamento ipertestuale è derivato dalla classe Inline , quindi è possibile inserirlo all'interno di qualsiasi contenitore con un Oggetto InlineCollection come proprietà Inlines , ad esempio TextBlock, Paragraph o Span.
Suggerimento
Quando usi un collegamento ipertestuale all'interno di un contenitore Span con altri elementi di testo in XAML, applica l'attributo xml:space="preserve"
a Span per mantenere lo spazio vuoto tra Hyperlink e altri elementi.
Passare a un URI
Per usare il collegamento ipertestuale per passare a un URI (Uniform Resource Identifier), impostare la proprietà NavigateUri . Quando un utente fa clic o tocca l'elemento Hyperlink, l'URI (Uniform Resource Identifier) specificato viene aperto nel browser predefinito. Il browser predefinito viene eseguito in un processo separato dalla tua app.
Suggerimento
Non devi necessariamente usare gli schemi http: o https:. Puoi usare schemi come ms-appx:, ms-appdata: o ms-resources: se in queste posizioni è presente contenuto di risorse appropriato per il caricamento in un browser. Lo schema file: è tuttavia specificatamente bloccato. Per altre info, vedi schemi URI.
Quando un utente fa clic sul collegamento ipertestuale, il valore della proprietà NavigateUri viene passato a un gestore di sistema per tipi e schemi URI (Uniform Resource Identifier). Il sistema avvia quindi l'app registrata per lo schema dell'URI (Uniform Resource Identifier) fornito per NavigateUri.
Se non si vuole che il collegamento ipertestuale carichi contenuto in un Web browser predefinito (e non si vuole che venga visualizzato un browser), non impostare un valore per NavigateUri. Gestire invece l'evento Click e scrivere codice che esegue le operazioni desiderate.
Gestire l'evento Click
Usa l'evento Click per azioni diverse dall'avvio di un URI (Uniform Resource Identifier) in un browser, ad esempio lo spostamento all'interno dell'app. Ad esempio, se vuoi caricare una nuova pagina dell'app anziché aprire un browser, chiama un metodo Frame.Navigate all'interno del gestore eventi Click per passare alla nuova pagina dell'app. Per caricare un URI (Uniform Resource Identifier) esterno e assoluto all'interno di un controllo WebView2 presente anche nell'app, chiamare WebView2.NavigateToString(System.String) come parte della logica del gestore Click .
In genere non si gestisce l'evento Click e si specifica un valore NavigateUri , perché rappresentano due modi diversi per usare l'elemento Hyperlink. Se la finalità è aprire l'URI nel browser predefinito ed è stato specificato un valore per NavigateUri, non gestire l'evento Click . Viceversa, se si gestisce l'evento Click , non specificare un NavigateUri.
Non è possibile eseguire alcuna operazione all'interno del gestore eventi Click per impedire al browser predefinito di caricare qualsiasi destinazione valida specificata per NavigateUri; tale azione viene eseguita automaticamente (in modo asincrono) quando il collegamento ipertestuale viene attivato e non può essere annullato dall'interno del gestore eventi Click .
Limitazioni dei collegamenti ipertestuali
Poiché un oggetto Hyperlink non è un oggetto UIElement, non dispone del set di eventi di input degli elementi dell'interfaccia utente, ad esempio Tapped, PointerPressed e così via. In alternativa, un oggetto Hyperlink ha un proprio evento Click , oltre al comportamento implicito del sistema che carica qualsiasi URI (Uniform Resource Identifier) specificato come NavigateUri. Il sistema gestisce tutte le azioni di input che devono richiamare le azioni Hyperlink e genera l'evento Click in risposta.
L'elemento Hyperlink prevede restrizioni per il contenuto che può esistere nella relativa raccolta Inlines. In particolare, un elemento Hyperlink consente solo tipi Run e altri tipi Span che non siano un altro elemento Hyperlink. InlineUIContainer non può trovarsi nell'insieme Inlines di un oggetto Hyperlink. Un tentativo di aggiungere contenuto con restrizioni genera un'eccezione di argomento non valido o un'eccezione di analisi XAML.
Elemento Hyperlink e comportamento per temi e stili
L'elemento Hyperlink non eredita da Control, quindi non è disponibile una proprietà Style o un Template. È possibile modificare le proprietà ereditate da TextElement, ad esempio Foreground o FontFamily, per modificare l'aspetto di un collegamento ipertestuale, ma non è possibile usare uno stile o un modello comune per applicare le modifiche. Invece di usare un modello, valuta la possibilità di usare risorse comuni per i valori delle proprietà di Hyperlink in modo da ottenere coerenza. Alcune proprietà di Hyperlink usano le impostazioni predefinite da un valore di estensione di markup {ThemeResource} fornito dal sistema. In questo modo l'aspetto dell'elemento Hyperlink può variare in modo appropriato quando l'utente cambia il tema di sistema in fase di esecuzione.
Il colore predefinito del collegamento ipertestuale è il colore principale del sistema. Puoi impostare la proprietà Foreground per sostituirlo.
Per impostazione predefinita, Hyperlink è sottolineato. Questa sottolineatura è importante perché consente di soddisfare i requisiti di accessibilità. Gli utenti daltonici usano la sottolineatura per distinguere tra i collegamenti ipertestuali e il testo. Puoi impostare la proprietà UnderlineStyle per disabilitare la sottolineatura. Se si disabilitano le sottolineature, è consigliabile aggiungere un altro tipo di differenza di formattazione per distinguere i collegamenti ipertestuali da altro testo, ad esempio FontWeight o FontStyle.
Costruttori
Hyperlink() |
Inizializza una nuova istanza della classe Hyperlink . |
Proprietà
AccessKey |
Ottiene o imposta la chiave di accesso per questo elemento. (Ereditato da TextElement) |
AccessKeyScopeOwner |
Ottiene o imposta un elemento di origine che fornisce l'ambito della chiave di accesso per questo elemento, anche se non si trova nell'albero visivo dell'elemento di origine. (Ereditato da TextElement) |
AllowFocusOnInteraction |
Ottiene o imposta un valore che indica se l'elemento ottiene automaticamente lo stato attivo quando l'utente interagisce con esso. (Ereditato da TextElement) |
CharacterSpacing |
Ottiene o imposta la spaziatura uniforme tra i caratteri, in unità pari a 1/1000 di un em. (Ereditato da TextElement) |
ContentEnd |
Ottiene un TextPointer che rappresenta la fine del contenuto nell'elemento. (Ereditato da TextElement) |
ContentStart |
Ottiene un TextPointer che rappresenta l'inizio del contenuto nell'elemento. (Ereditato da TextElement) |
Dispatcher |
Restituisce |
DispatcherQueue |
Ottiene l'oggetto |
ElementEnd |
Ottiene un TextPointer che rappresenta la posizione appena dopo la fine dell'elemento. (Ereditato da TextElement) |
ElementSoundMode |
Ottiene o imposta un valore che specifica la preferenza del controllo per la riproduzione di suoni. |
ElementSoundModeProperty |
Identifica la proprietà di dipendenza ElementSoundMode . |
ElementStart |
Ottiene un TextPointer che rappresenta la posizione appena prima dell'inizio dell'elemento. (Ereditato da TextElement) |
ExitDisplayModeOnAccessKeyInvoked |
Ottiene o imposta un valore che specifica se la visualizzazione della chiave di accesso viene ignorata quando viene richiamata una chiave di accesso. (Ereditato da TextElement) |
FocusState |
Ottiene un valore che specifica se il collegamento ipertestuale ha lo stato attivo e la modalità in base alla quale è stato ottenuto lo stato attivo. |
FocusStateProperty |
Identifica la proprietà di dipendenza FocusState . |
FontFamily |
Ottiene o imposta la famiglia di caratteri di primo livello preferita per il contenuto dell'elemento. (Ereditato da TextElement) |
FontSize |
Ottiene o imposta le dimensioni del carattere per il contenuto dell'elemento. (Ereditato da TextElement) |
FontStretch |
Ottiene o imposta la larghezza del glifo del tipo di carattere in una famiglia da selezionare. (Ereditato da TextElement) |
FontStyle |
Ottiene o imposta lo stile del carattere per il contenuto in questo elemento. (Ereditato da TextElement) |
FontWeight |
Ottiene o imposta il peso del carattere di primo livello da selezionare dalla famiglia di caratteri per il contenuto in questo elemento. (Ereditato da TextElement) |
Foreground |
Ottiene o imposta Il pennello da applicare al contenuto in questo elemento. (Ereditato da TextElement) |
Inlines |
Ottiene un oggetto InlineCollection contenente gli elementi inline di primo livello che includono il contenuto di Span. (Ereditato da Span) |
IsAccessKeyScope |
Ottiene o imposta un valore che indica se un elemento definisce il proprio ambito di chiave di accesso. (Ereditato da TextElement) |
IsTabStop |
Ottiene o imposta un valore che indica se il collegamento ipertestuale è incluso nella navigazione a schede. |
IsTabStopProperty |
Identifica la proprietà di dipendenza IsTabStop. |
IsTextScaleFactorEnabled |
Ottiene o imposta se l'ingrandimento automatico del testo, per riflettere l'impostazione delle dimensioni del testo di sistema, è abilitata. (Ereditato da TextElement) |
KeyTipHorizontalOffset |
Ottiene o imposta un valore che indica la posizione della descrizione chiave a sinistra o destra rispetto all'elemento di testo. (Ereditato da TextElement) |
KeyTipPlacementMode |
Ottiene o imposta un valore che indica dove viene inserita la descrizione chiave in relazione all'elemento di testo. (Ereditato da TextElement) |
KeyTipVerticalOffset |
Ottiene o imposta un valore che indica l'altezza o il basso della descrizione chiave in relazione all'elemento di testo. (Ereditato da TextElement) |
Language |
Ottiene o imposta informazioni sul linguaggio di localizzazione/globalizzazione applicabili a textElement. (Ereditato da TextElement) |
Name |
Ottiene o imposta un'identificazione univoca per l'oggetto. Il nome può essere impostato solo dall'analisi iniziale di XAML. (Ereditato da TextElement) |
NavigateUri |
Ottiene o imposta l'URI (Uniform Resource Identifier) da passare a quando viene attivato il collegamento ipertestuale . |
NavigateUriProperty |
Identifica la proprietà di dipendenza NavigateUri . |
TabIndex |
Ottiene o imposta un valore che determina l'ordine in cui gli elementi ricevono lo stato attivo quando l'utente passa attraverso i controlli premendo il tasto Tab. |
TabIndexProperty |
Identifica la proprietà di dipendenza TabIndex. |
TextDecorations |
Ottiene o imposta un valore che indica quali decorazioni vengono applicate al testo. (Ereditato da TextElement) |
UnderlineStyle |
Ottiene o imposta un valore che indica il tipo di sottolineatura visualizzato nel collegamento ipertestuale. |
UnderlineStyleProperty |
Identifica la proprietà di dipendenza UnderlineStyle . |
XamlRoot |
Ottiene o imposta XamlRoot in cui viene visualizzato questo elemento. (Ereditato da TextElement) |
XYFocusDown |
Ottiene o imposta l'oggetto che ottiene lo stato attivo quando un utente preme il DPAD (Directional Pad). |
XYFocusDownNavigationStrategy |
Ottiene o imposta un valore che specifica la strategia utilizzata per determinare l'elemento di destinazione di uno spostamento verso il basso. |
XYFocusDownNavigationStrategyProperty |
Identifica la proprietà di dipendenza XYFocusDownNavigationStrategy . |
XYFocusDownProperty |
Identifica la proprietà di dipendenza XYFocusDown . |
XYFocusLeft |
Ottiene o imposta l'oggetto che ottiene lo stato attivo quando un utente preme il riquadro direzionale (DPAD) a sinistra. |
XYFocusLeftNavigationStrategy |
Ottiene o imposta un valore che specifica la strategia utilizzata per determinare l'elemento di destinazione di una navigazione a sinistra. |
XYFocusLeftNavigationStrategyProperty |
Identifica la proprietà di dipendenza XYFocusLeftNavigationStrategy . |
XYFocusLeftProperty |
Identifica la proprietà di dipendenza XYFocusLeft . |
XYFocusRight |
Ottiene o imposta l'oggetto che ottiene lo stato attivo quando un utente preme il riquadro direzionale (DPAD) a destra. |
XYFocusRightNavigationStrategy |
Ottiene o imposta un valore che specifica la strategia usata per determinare l'elemento di destinazione di una navigazione corretta. |
XYFocusRightNavigationStrategyProperty |
Identifica la proprietà di dipendenza XYFocusRightNavigationStrategy . |
XYFocusRightProperty |
Identifica la proprietà di dipendenza XYFocusRight . |
XYFocusUp |
Ottiene o imposta l'oggetto che ottiene lo stato attivo quando un utente preme il DPAD (Directional Pad). |
XYFocusUpNavigationStrategy |
Ottiene o imposta un valore che specifica la strategia utilizzata per determinare l'elemento di destinazione di un spostamento verso l'alto. |
XYFocusUpNavigationStrategyProperty |
Identifica la proprietà di dipendenza XYFocusUpNavigationStrategy . |
XYFocusUpProperty |
Identifica la proprietà di dipendenza XYFocusUp . |
Metodi
ClearValue(DependencyProperty) |
Cancella il valore locale di una proprietà di dipendenza. (Ereditato da DependencyObject) |
FindName(String) |
Recupera un oggetto nel grafico a oggetti modello/oggetto runtime facendo riferimento al valore dell'attributo x:Name o Name dell'oggetto. (Ereditato da TextElement) |
Focus(FocusState) |
Tenta di impostare lo stato attivo sul collegamento ipertestuale. |
GetAnimationBaseValue(DependencyProperty) |
Restituisce qualsiasi valore di base stabilito per una proprietà di dipendenza, che si applica nei casi in cui un'animazione non è attiva. (Ereditato da DependencyObject) |
GetValue(DependencyProperty) |
Restituisce il valore effettivo corrente di una proprietà di dipendenza da un oggetto DependencyObject. (Ereditato da DependencyObject) |
OnDisconnectVisualChildren() |
Eseguire l'override di questo metodo per implementare il comportamento del layout e della logica quando gli elementi vengono rimossi da un contenuto specifico della classe o da una proprietà figlio. (Ereditato da TextElement) |
ReadLocalValue(DependencyProperty) |
Restituisce il valore locale di una proprietà di dipendenza, se viene impostato un valore locale. (Ereditato da DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registra una funzione di notifica per l'ascolto delle modifiche a un'istanza di DependencyObject specifica. (Ereditato da DependencyObject) |
SetValue(DependencyProperty, Object) |
Imposta il valore locale di una proprietà di dipendenza in un oggetto DependencyObject. (Ereditato da DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback. (Ereditato da DependencyObject) |
Eventi
AccessKeyDisplayDismissed |
Si verifica quando la sequenza di chiavi di accesso viene completata per notificare ai controlli che devono nascondere gli oggetti visivi delle chiavi di accesso. (Ereditato da TextElement) |
AccessKeyDisplayRequested |
Si verifica quando viene avviata la sequenza di chiavi di accesso per notificare ai controlli che devono visualizzare gli oggetti visivi delle chiavi di accesso. (Ereditato da TextElement) |
AccessKeyInvoked |
Si verifica quando un utente completa una sequenza di chiavi di accesso per notificare all'elemento che deve essere richiamata l'azione chiave di accesso. (Ereditato da TextElement) |
Click |
Si verifica quando viene fatto clic sul collegamento ipertestuale . |
GotFocus |
Si verifica quando un collegamento ipertestuale riceve lo stato attivo. |
LostFocus |
Si verifica quando un collegamento ipertestuale perde lo stato attivo. |