Condividi tramite


Hyperlink Classe

Definizione

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à
Object Platform::Object IInspectable DependencyObject TextElement Inline Span Hyperlink
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

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.

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.

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 .

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.

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 null sempre in un'app Windows App SDK. Usare invece DispatcherQueue .

(Ereditato da DependencyObject)
DispatcherQueue

Ottiene l'oggetto DispatcherQueue associato. Rappresenta DispatcherQueue una struttura che può accedere al thread dell'interfaccia utente anche se il codice viene avviato da un thread non dell'interfaccia DependencyObject utente.

(Ereditato da DependencyObject)
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.

Si applica a

Vedi anche