Partilhar via


Hyperlink Classe

Definição

Fornece um elemento de conteúdo em nível embutido que fornece recursos para hospedar hiperlinks.

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 .../>
Herança
Object Platform::Object IInspectable DependencyObject TextElement Inline Span Hyperlink
Atributos

Exemplos

Aqui está um exemplo de um elemento Hyperlink simples em um TextBlock.

No XAML, a criação de elementos de conteúdo é implícita, portanto, você pode adicionar o texto do link diretamente ao Hiperlink e o Hiperlink diretamente ao elemento TextBlock .

No código, você precisa criar explicitamente cada elemento Run , definir sua propriedade Text e adicioná-la à coleção Inlines apropriada (o Hyperlink ou 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);

Este exemplo mostra um elemento Hyperlink em um TextBlock com outro texto.

No XAML, a criação de elementos de conteúdo é implícita, para que você possa adicionar o texto do link diretamente ao Hiperlink. O elemento Span com o xml:space="preserve" atributo é usado para preservar o espaço em branco ao redor do hiperlink.

No código, você precisa criar explicitamente cada elemento Run , definir sua propriedade Text e adicioná-la à coleção Inlines apropriada (o Hyperlink ou 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);

Aqui está um exemplo de um elemento Hyperlink simples em um TextBlock.

No XAML, a criação de elementos de conteúdo é implícita, portanto, você pode adicionar o texto do link diretamente ao Hiperlink e o Hiperlink diretamente ao elemento TextBlock . O elemento Span com o xml:space="preserve" atributo é usado para preservar o espaço em branco ao redor do hiperlink.

No código, você precisa criar explicitamente cada elemento de texto (por exemplo, Executar, Parágrafo ou Itálico) e adicioná-lo à coleção Inlines apropriada.

<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);

Comentários

Há duas maneiras de adicionar um hiperlink a um aplicativo XAML. Hyperlink e HyperlinkButton têm a finalidade semelhante de permitir que um usuário inicie um URI específico usando um aplicativo de navegador separado.+ Use um elemento de texto hyperlink embutido dentro de um controle de texto. Um elemento Hyperlink flui com outros elementos de texto e você pode usá-lo em qualquer InlineCollection.

Use o elemento Hyperlink para adicionar texto interativo ao conteúdo de um TextBlock ou RichTextBlock. O hiperlink é derivado da classe Inline , portanto, você pode colocá-lo dentro de qualquer contêiner que tenha uma InlineCollection como sua propriedade Inlines , como TextBlock, Paragraph ou Span.

Dica

Ao usar um Hiperlink em um contêiner span com outros elementos de texto em XAML, aplique o xml:space="preserve" atributo ao Span para manter o espaço em branco entre o Hiperlink e outros elementos.

Para usar o hiperlink para navegar até um URI (Uniform Resource Identifier), defina a propriedade NavigateUri . Quando um usuário clica ou toca no elemento Hyperlink, o URI (Uniform Resource Identifier) especificado é aberto no navegador padrão. O navegador padrão é executado em um processo à parte do aplicativo.

Dica

Você não precisa usar esquemas http: nem https:. Poderá usar esquemas como ms-appx:, ms-appdata: ou ms-resources: se houver conteúdo de recurso nesses locais que seja apropriado carregar em um navegador. No entanto, o esquema file: é especificamente bloqueado. Para obter mais informações, consulte Esquemas de URI.

Quando um usuário clica no Hiperlink, o valor da propriedade NavigateUri é passado para um manipulador de sistema para tipos e esquemas de URI (Uniform Resource Identifier). Em seguida, o sistema inicia o aplicativo registrado para o esquema do URI (Uniform Resource Identifier) fornecido para NavigateUri.

Se você não quiser que o Hiperlink carregue conteúdo em um navegador da Web padrão (e não deseja que um navegador apareça), não defina um valor para NavigateUri. Em vez disso, manipule o evento Click e escreva o código que faz o que você deseja.

Manipular o evento Click.

Use o evento Click para ações diferentes de iniciar um URI (Uniform Resource Identifier) em um navegador, como navegação dentro do aplicativo. Por exemplo, se você quiser carregar uma nova página de aplicativo em vez de abrir um navegador, chame um método Frame.Navigate dentro do manipulador de eventos Click para navegar até a nova página do aplicativo. Se você quiser que um URI (Uniform Resource Identifier) externo e absoluto seja carregado em um controle WebView2 que também exista em seu aplicativo, chame WebView2.NavigateToString(System.String) como parte da lógica do manipulador click .

Normalmente, você não manipula o evento Click , bem como especifica um valor NavigateUri , pois eles representam duas maneiras diferentes de usar o elemento Hyperlink. Se sua intenção for abrir o URI no navegador padrão e você tiver especificado um valor para NavigateUri, não manipule o evento Click . Por outro lado, se você manipular o evento Click , não especifique um NavigateUri.

Não há nada que você possa fazer dentro do manipulador de eventos Click para impedir que o navegador padrão carregue qualquer destino válido especificado para NavigateUri; essa ação ocorre automaticamente (de forma assíncrona) quando o hiperlink é ativado e não pode ser cancelado de dentro do manipulador de eventos Click .

Como um Hiperlink não é um UIElement, ele não tem o conjunto de eventos de entrada de elemento de interface do usuário, como Tapped, PointerPressed e assim por diante. Em vez disso, um Hiperlink tem seu próprio evento Click , além do comportamento implícito do sistema carregando qualquer URI (Uniform Resource Identifier) especificado como NavigateUri. O sistema manipula todas as ações de entrada que devem invocar as ações do Hiperlink e aciona o evento Click em resposta.

O hiperlink tem restrições sobre o conteúdo que podem existir na sua coleção Inlines. Especificamente, um hiperlink só permite Run e outros tipos de Span que não são outro hiperlink. InlineUIContainer não pode estar na coleção Inlines de um Hiperlink. Tentar adicionar conteúdo restrito gera uma exceção de argumento inválido ou uma exceção de análise XAML.

O hiperlink não herda Control, portanto, ele não tem uma propriedade Style ou um Template. Você pode editar as propriedades herdadas de TextElement, como Foreground ou FontFamily, para alterar a aparência de um Hiperlink, mas não pode usar um estilo ou modelo comum para aplicar alterações. Em vez de usar um modelo, considere usar recursos comuns para valores de propriedades de hiperlink para fornecer consistência. Algumas propriedades do Hyperlink usam padrões de um valor de extensão de marcação {ThemeResource} fornecido pelo sistema. Isso permite que a aparência do hiperlink seja alternada de maneiras apropriadas quando o usuário altera o tema do sistema em tempo de execução.

A cor padrão do hiperlink é a cor de destaque do sistema. Você pode definir a propriedade Foreground para substituir isso.

Por padrão, o Hiperlink é sublinhado. Esse sublinhado é importante porque ele ajuda a atender a requisitos de acessibilidade. Usuários daltônicos usam o sublinhado para distinguir entre os hiperlinks e outros textos. Você pode definir a propriedade UnderlineStyle para desabilitar o sublinhado. Se você desabilitar sublinhados, deverá considerar adicionar algum outro tipo de diferença de formatação para distinguir hiperlinks de outro texto, como FontWeight ou FontStyle.

Construtores

Hyperlink()

Inicializa uma nova instância da classe Hyperlink .

Propriedades

AccessKey

Obtém ou define a chave de acesso para esse elemento.

(Herdado de TextElement)
AccessKeyScopeOwner

Obtém ou define um elemento de origem que fornece o escopo da chave de acesso para esse elemento, mesmo que ele não esteja na árvore visual do elemento de origem.

(Herdado de TextElement)
AllowFocusOnInteraction

Obtém ou define um valor que indica se o elemento obtém automaticamente o foco quando o usuário interage com ele.

(Herdado de TextElement)
CharacterSpacing

Obtém ou define o espaçamento uniforme entre caracteres, em unidades de 1/1000 de um em.

(Herdado de TextElement)
ContentEnd

Obtém um TextPointer que representa o final do conteúdo no elemento .

(Herdado de TextElement)
ContentStart

Obtém um TextPointer que representa o início do conteúdo no elemento .

(Herdado de TextElement)
Dispatcher

Sempre retorna null em um aplicativo SDK do Aplicativo Windows. Em vez disso, use DispatcherQueue .

(Herdado de DependencyObject)
DispatcherQueue

Obtém o ao DispatcherQueue qual esse objeto está associado. O DispatcherQueue representa uma instalação que pode acessar o DependencyObject no thread da interface do usuário mesmo que o código seja iniciado por um thread que não seja da interface do usuário.

(Herdado de DependencyObject)
ElementEnd

Obtém um TextPointer que representa a posição logo após o final do elemento.

(Herdado de TextElement)
ElementSoundMode

Obtém ou define um valor que especifica a preferência do controle para se ele reproduz sons.

ElementSoundModeProperty

Identifica a propriedade de dependência ElementSoundMode .

ElementStart

Obtém um TextPointer que representa a posição pouco antes do início do elemento.

(Herdado de TextElement)
ExitDisplayModeOnAccessKeyInvoked

Obtém ou define um valor que especifica se a exibição da chave de acesso é ignorada quando uma chave de acesso é invocada.

(Herdado de TextElement)
FocusState

Obtém um valor que especifica se esse hiperlink tem foco e o modo pelo qual o foco foi obtido.

FocusStateProperty

Identifica a propriedade de dependência FocusState .

FontFamily

Obtém ou define a família de fontes preferencial de nível superior para o conteúdo do elemento.

(Herdado de TextElement)
FontSize

Obtém ou define o tamanho da fonte para o conteúdo do elemento.

(Herdado de TextElement)
FontStretch

Obtém ou define a largura do glifo da fonte em uma família a ser selecionada.

(Herdado de TextElement)
FontStyle

Obtém ou define o estilo da fonte para o conteúdo neste elemento.

(Herdado de TextElement)
FontWeight

Obtém ou define o peso da fonte de nível superior a ser selecionado na família de fontes para o conteúdo neste elemento.

(Herdado de TextElement)
Foreground

Obtém ou define o Pincel a ser aplicado ao conteúdo neste elemento.

(Herdado de TextElement)
Inlines

Obtém uma InlineCollection que contém os elementos embutidos de nível superior que incluem o conteúdo de Span.

(Herdado de Span)
IsAccessKeyScope

Obtém ou define um valor que indica se um elemento define seu próprio escopo de chave de acesso.

(Herdado de TextElement)
IsTabStop

Obtém ou define um valor que indica se o hiperlink está incluído na navegação de guia.

IsTabStopProperty

Identifica a propriedade de dependência IsTabStop.

IsTextScaleFactorEnabled

Obtém ou define se a ampliação automática de texto, para refletir a configuração de tamanho do texto do sistema, está habilitada.

(Herdado de TextElement)
KeyTipHorizontalOffset

Obtém ou define um valor que indica o quão à esquerda ou à direita a dica de chave é colocada em relação ao elemento de texto.

(Herdado de TextElement)
KeyTipPlacementMode

Obtém ou define um valor que indica onde a Dica de Chave é colocada em relação ao elemento de texto.

(Herdado de TextElement)
KeyTipVerticalOffset

Obtém ou define um valor que indica até que ponto a dica de chave é colocada em relação ao elemento de texto.

(Herdado de TextElement)
Language

Obtém ou define informações de idioma de localização/globalização que se aplicam a um TextElement.

(Herdado de TextElement)
Name

Obtém ou define uma identificação exclusiva para o objeto . O nome só pode ser definido a partir da análise inicial de XAML.

(Herdado de TextElement)
NavigateUri

Obtém ou define o URI (Uniform Resource Identifier) para o qual navegar quando o Hiperlink é ativado.

NavigateUriProperty

Identifica a propriedade de dependência NavigateUri .

TabIndex

Obtém ou define um valor que determina a ordem na qual os elementos recebem foco quando o usuário navega pelos controles pressionando a tecla Tab.

TabIndexProperty

Identifica a propriedade de dependência TabIndex.

TextDecorations

Obtém ou define um valor que indica quais decorações são aplicadas ao texto.

(Herdado de TextElement)
UnderlineStyle

Obtém ou define um valor que indica que tipo de sublinhado é mostrado no hiperlink.

UnderlineStyleProperty

Identifica a propriedade de dependência UnderlineStyle .

XamlRoot

Obtém ou define o XamlRoot no qual esse elemento está sendo exibido.

(Herdado de TextElement)
XYFocusDown

Obtém ou define o objeto que obtém o foco quando um usuário pressiona o DPAD (Teclado Direcional) para baixo.

XYFocusDownNavigationStrategy

Obtém ou define um valor que especifica a estratégia usada para determinar o elemento de destino de uma navegação para baixo.

XYFocusDownNavigationStrategyProperty

Identifica a propriedade de dependência XYFocusDownNavigationStrategy .

XYFocusDownProperty

Identifica a propriedade de dependência XYFocusDown .

XYFocusLeft

Obtém ou define o objeto que obtém o foco quando um usuário pressiona o DPAD (Teclado Direcional) à esquerda.

XYFocusLeftNavigationStrategy

Obtém ou define um valor que especifica a estratégia usada para determinar o elemento de destino de uma navegação à esquerda.

XYFocusLeftNavigationStrategyProperty

Identifica a propriedade de dependência XYFocusLeftNavigationStrategy .

XYFocusLeftProperty

Identifica a propriedade de dependência XYFocusLeft .

XYFocusRight

Obtém ou define o objeto que obtém o foco quando um usuário pressiona o DPAD (Teclado Direcional) à direita.

XYFocusRightNavigationStrategy

Obtém ou define um valor que especifica a estratégia usada para determinar o elemento de destino de uma navegação à direita.

XYFocusRightNavigationStrategyProperty

Identifica a propriedade de dependência XYFocusRightNavigationStrategy .

XYFocusRightProperty

Identifica a propriedade de dependência XYFocusRight .

XYFocusUp

Obtém ou define o objeto que obtém o foco quando um usuário pressiona o DPAD (Teclado Direcional) para cima.

XYFocusUpNavigationStrategy

Obtém ou define um valor que especifica a estratégia usada para determinar o elemento de destino de uma navegação para cima.

XYFocusUpNavigationStrategyProperty

Identifica a propriedade de dependência XYFocusUpNavigationStrategy .

XYFocusUpProperty

Identifica a propriedade de dependência XYFocusUp .

Métodos

ClearValue(DependencyProperty)

Limpa o valor local de uma propriedade de dependência.

(Herdado de DependencyObject)
FindName(String)

Recupera um objeto no modelo de objeto/grafo de objeto de runtime fazendo referência ao valor do atributo x:Name ou Name do objeto.

(Herdado de TextElement)
Focus(FocusState)

Tenta definir o foco no hiperlink.

GetAnimationBaseValue(DependencyProperty)

Retorna qualquer valor base estabelecido para uma propriedade de dependência, que se aplicaria nos casos em que uma animação não está ativa.

(Herdado de DependencyObject)
GetValue(DependencyProperty)

Retorna o valor efetivo atual de uma propriedade de dependência de um DependencyObject.

(Herdado de DependencyObject)
OnDisconnectVisualChildren()

Substitua esse método para implementar como o layout e a lógica devem se comportar quando os itens são removidos de um conteúdo específico da classe ou propriedade filho.

(Herdado de TextElement)
ReadLocalValue(DependencyProperty)

Retorna o valor local de uma propriedade de dependência, se um valor local for definido.

(Herdado de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra uma função de notificação para escutar alterações em uma DependencyProperty específica nesta instância dependencyObject .

(Herdado de DependencyObject)
SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência em um DependencyObject.

(Herdado de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela uma notificação de alteração que foi registrada anteriormente chamando RegisterPropertyChangedCallback.

(Herdado de DependencyObject)

Eventos

AccessKeyDisplayDismissed

Ocorre quando a sequência de chaves de acesso é concluída para notificar os controles de que eles devem ocultar visuais de chave de acesso.

(Herdado de TextElement)
AccessKeyDisplayRequested

Ocorre quando a sequência de chaves de acesso é iniciada para notificar os controles de que eles devem mostrar visuais de chave de acesso.

(Herdado de TextElement)
AccessKeyInvoked

Ocorre quando um usuário conclui uma sequência de chaves de acesso para notificar o elemento de que a ação de chave de acesso deve ser invocada.

(Herdado de TextElement)
Click

Ocorre quando o Hiperlink é clicado.

GotFocus

Ocorre quando um Hiperlink recebe o foco.

LostFocus

Ocorre quando um Hiperlink perde o foco.

Aplica-se a

Confira também