Hyperlink Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece um elemento de conteúdo de nível embutido que fornece recursos para hospedar hiperlinks.
public ref class Hyperlink sealed : Span
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 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.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class Hyperlink final : Span
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Hyperlink : Span
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class Hyperlink : Span
Public NotInheritable Class Hyperlink
Inherits Span
<Hyperlink .../>
- Herança
- Atributos
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
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
Hyperlink e HyperlinkButton
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 um controle HyperlinkButton em qualquer lugar do aplicativo. Um HyperlinkButton é um controle button especializado que você pode usar em qualquer lugar em que você usaria um Botão. Para obter mais informações, consulte HyperlinkButton.
Hiperlink embutido
Use o elemento Hyperlink para adicionar texto interativo ao conteúdo de um TextBlock ou RichTextBlock. O hiperlink é derivado da classe Inline , para que você possa colocá-lo dentro de qualquer contêiner que tenha uma InlineCollection como sua propriedade Inlines , como TextBlock, Paragraph ou Span.
Dica
Quando você usa 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.
Navegar até um URI
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 no 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 dentro de um controle WebView que também existe em seu aplicativo, chame WebView.Navigate como parte da lógica do manipulador de cliques .
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 no 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 .
Limitações de hiperlink
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 que carrega qualquer URI (Uniform Resource Identifier) especificado como NavigateUri. O sistema manipula todas as ações de entrada que devem invocar as ações de 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 Hyperlink. Tentar adicionar conteúdo restrito gera uma exceção de argumento inválido ou uma exceção de análise XAML.
Comportamento de hiperlink e tema/estilo
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 Hiperlink 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, 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, considere adicionar algum outro tipo de diferença de formatação para distinguir hiperlinks de outro texto, como FontWeight ou FontStyle.
Histórico de versão
Versão do Windows | Versão do SDK | Valor adicionado |
---|---|---|
1607 | 14393 | ElementSoundMode |
1607 | 14393 | XYFocusDown |
1607 | 14393 | XYFocusLeft |
1607 | 14393 | XYFocusRight |
1607 | 14393 | XYFocusUp |
1703 | 15063 | Foco |
1703 | 15063 | FocusState |
1703 | 15063 | GotFocus |
1703 | 15063 | LostFocus |
1703 | 15063 | XYFocusDownNavigationStrategy |
1703 | 15063 | XYFocusLeftNavigationStrategy |
1703 | 15063 | XYFocusRightNavigationStrategy |
1703 | 15063 | XYFocusUpNavigationStrategy |
1.709 | 16299 | Istabstop |
1.709 | 16299 | TabIndex |
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 |
Obtém o CoreDispatcher ao qual esse objeto está associado. O CoreDispatcher representa uma instalação que pode acessar 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. |