Hyperlink Clase

Definición

Proporciona un elemento de contenido en línea que proporciona instalaciones para hospedar hipervínculos.

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

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Ejemplos

Este es un ejemplo de un elemento Hyperlink simple en un TextBlock.

En XAML, la creación de elementos de contenido es implícita, por lo que puedes agregar el texto del vínculo directamente al hipervínculo y el hipervínculo directamente al elemento TextBlock .

En el código, tiene que crear explícitamente cada elemento Run , establecer su propiedad Text y agregarlo a la colección Inlines adecuada (ya sea hyperlink 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);

En este ejemplo se muestra un elemento Hyperlink en un TextBlock con otro texto.

En XAML, la creación de elementos de contenido es implícita, por lo que puedes agregar el texto del vínculo directamente al hipervínculo. El elemento Span con el xml:space="preserve" atributo se usa para conservar los espacios en blanco alrededor del hipervínculo.

En el código, tiene que crear explícitamente cada elemento Run , establecer su propiedad Text y agregarlo a la colección Inlines adecuada (ya sea hyperlink 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);

Este es un ejemplo de un elemento Hyperlink simple en un TextBlock.

En XAML, la creación de elementos de contenido es implícita, por lo que puedes agregar el texto del vínculo directamente al hipervínculo y el hipervínculo directamente al elemento TextBlock . El elemento Span con el xml:space="preserve" atributo se usa para conservar los espacios en blanco alrededor del hipervínculo.

En el código, debe crear explícitamente cada elemento de texto (por ejemplo, Ejecutar, Párrafo o Cursiva) y agregarlo a la colección Inlines adecuada.

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

Comentarios

Hay dos maneras de agregar un hipervínculo a una aplicación XAML. Hyperlink y HyperlinkButton tienen el propósito similar de permitir que un usuario inicie un URI específico mediante una aplicación de explorador independiente.+ Use un elemento de texto Hyperlink insertado dentro de un control de texto. Un elemento Hyperlink fluye con otros elementos de texto y puede usarlo en cualquier InlineCollection.

Use el elemento Hyperlink para agregar texto interactivo al contenido de un TextBlock o RichTextBlock. Hyperlink se deriva de la clase Inline , por lo que puede colocarlo dentro de cualquier contenedor que tenga inlineCollection como su propiedad Inlines , como TextBlock, Paragraph o Span.

Sugerencia

Cuando uses un hipervínculo dentro de un contenedor Span con otros elementos de texto en XAML, aplica el xml:space="preserve" atributo a Span para mantener el espacio en blanco entre hyperlink y otros elementos.

Para usar el hipervínculo para navegar a un identificador uniforme de recursos (URI), establezca la propiedad NavigateUri . Cuando un usuario hace clic o pulsa en el elemento Hyperlink, se abre el identificador uniforme de recursos (URI) especificado en el explorador predeterminado. El explorador predeterminado se ejecuta en un proceso independiente de la aplicación.

Sugerencia

No es necesario usar esquemas http: o https:. Esquemas como ms-appx:, ms-appdata: o ms-resources: se pueden usar si hay contenido de recursos en estas ubicaciones que sea adecuado para cargarlo en un explorador. Sin embargo, el esquema file: se bloquea específicamente. Para más información, consulta Esquemas de URI.

Cuando un usuario hace clic en el hipervínculo, el valor de la propiedad NavigateUri se pasa a un controlador del sistema para los tipos y esquemas del identificador uniforme de recursos (URI). A continuación, el sistema inicia la aplicación registrada para el esquema del identificador uniforme de recursos (URI) proporcionado para NavigateUri.

Si no desea que el hipervínculo cargue contenido en un explorador web predeterminado (y no quiere que aparezca un explorador), no establezca un valor para NavigateUri. En su lugar, controle el evento Click y escriba código que haga lo que desee.

Controlar el evento Click

Use el evento Click para acciones distintas de iniciar un identificador uniforme de recursos (URI) en un explorador, como la navegación dentro de la aplicación. Por ejemplo, si quiere cargar una nueva página de aplicación en lugar de abrir un explorador, llame a un método Frame.Navigate en el controlador de eventos Click para ir a la nueva página de la aplicación. Si desea que un identificador uniforme de recursos (URI) externo se cargue dentro de un control WebView que también exista en la aplicación, llame a WebView.Navigate como parte de la lógica del controlador click .

Normalmente no controla el evento Click , así como la especificación de un valor NavigateUri , ya que representan dos formas diferentes de usar el elemento Hyperlink. Si su intención es abrir el URI en el explorador predeterminado y ha especificado un valor para NavigateUri, no controle el evento Click . Por el contrario, si controla el evento Click , no especifique un NavigateUri.

No hay nada que pueda hacer en el controlador de eventos Click para evitar que el explorador predeterminado cargue cualquier destino válido especificado para NavigateUri; esa acción se realiza automáticamente (de forma asincrónica) cuando se activa el hipervínculo y no se puede cancelar desde el controlador de eventos Click .

Dado que un hyperlink no es un UIElement, no tiene el conjunto de eventos de entrada de elementos de la interfaz de usuario, como Tapped, PointerPressed , etc. En su lugar, un hyperlink tiene su propio evento Click , además del comportamiento implícito de la carga del sistema cualquier identificador uniforme de recursos (URI) especificado como NavigateUri. El sistema controla todas las acciones de entrada que deben invocar las acciones Hipervínculo y genera el evento Click en respuesta.

El elemento Hyperlink tiene restricciones respecto al contenido que puede existir en su colección de elementos Inline. En concreto, un elemento Hyperlink solo permite la clase Run y otros tipos de Span que no sean otro elemento Hyperlink. InlineUIContainer no puede estar en la colección Inlines de un hyperlink. Si se intenta agregar contenido restringido, se genera una excepción de argumento no válido o una excepción de análisis XAML.

Hyperlink no hereda de Control, de modo que no tiene una propiedad Style ni una Template. Puede editar las propiedades que se heredan de TextElement, como Foreground o FontFamily, para cambiar la apariencia de un hipervínculo, pero no puede usar un estilo o plantilla comunes para aplicar cambios. En lugar de usar una plantilla, considere la posibilidad de usar recursos comunes para los valores de las propiedades de Hyperlink a fin de ofrecer una experiencia coherente. Algunas propiedades de Hyperlink usan valores predeterminados de un valor de extensión de marcado {ThemeResource} proporcionado por el sistema. Esto permite que la apariencia del elemento Hyperlink cambie de forma adecuada cuando el usuario modifique el tema del sistema en tiempo de ejecución.

El color predeterminado del hipervínculo es el color de énfasis del sistema. Puedes establecer la propiedad Foreground para reemplazar este comportamiento.

De forma predeterminada, el hipervínculo está subrayado. Este subrayado es importante porque ayuda a cumplir los requisitos de accesibilidad. Los usuarios daltónicos se ayudan del subrayado para distinguir entre hipervínculos y otros tipos de texto. Puedes establecer la propiedad UnderlineStyle para deshabilitar el subrayado. Si deshabilita subrayados, debe considerar la posibilidad de agregar algún otro tipo de diferencia de formato para distinguir hipervínculos de otro texto, como FontWeight o FontStyle.

Historial de versiones

Versión de Windows Versión del SDK Valor agregado
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
1709 16299 IsTabStop
1709 16299 TabIndex

Constructores

Hyperlink()

Inicializa una nueva instancia de la clase Hyperlink .

Propiedades

AccessKey

Obtiene o establece la clave de acceso de este elemento.

(Heredado de TextElement)
AccessKeyScopeOwner

Obtiene o establece un elemento de origen que proporciona el ámbito de la clave de acceso para este elemento, incluso si no está en el árbol visual del elemento de origen.

(Heredado de TextElement)
AllowFocusOnInteraction

Obtiene o establece un valor que indica si el elemento obtiene automáticamente el foco cuando el usuario interactúa con él.

(Heredado de TextElement)
CharacterSpacing

Obtiene o establece el espaciado uniforme entre caracteres, en unidades de 1/1000 de em.

(Heredado de TextElement)
ContentEnd

Obtiene un TextPointer que representa el final del contenido del elemento .

(Heredado de TextElement)
ContentStart

Obtiene un TextPointer que representa el inicio del contenido en el elemento .

(Heredado de TextElement)
Dispatcher

Obtiene el CoreDispatcher al que está asociado este objeto. CoreDispatcher representa una instalación que puede acceder a DependencyObject en el subproceso de la interfaz de usuario, incluso si un subproceso que no es de interfaz de usuario inicia el código.

(Heredado de DependencyObject)
ElementEnd

Obtiene un TextPointer que representa la posición justo después del final del elemento.

(Heredado de TextElement)
ElementSoundMode

Obtiene o establece un valor que especifica la preferencia del control para si reproduce sonidos.

ElementSoundModeProperty

Identifica la propiedad de dependencia ElementSoundMode .

ElementStart

Obtiene un TextPointer que representa la posición justo antes del inicio del elemento.

(Heredado de TextElement)
ExitDisplayModeOnAccessKeyInvoked

Obtiene o establece un valor que especifica si se descarta la presentación de la clave de acceso cuando se invoca una clave de acceso.

(Heredado de TextElement)
FocusState

Obtiene un valor que especifica si este hipervínculo tiene el foco y el modo por el que se obtuvo el foco.

FocusStateProperty

Identifica la propiedad de dependencia FocusState .

FontFamily

Obtiene o establece la familia de fuentes de nivel superior preferida para el contenido del elemento.

(Heredado de TextElement)
FontSize

Obtiene o establece el tamaño de fuente para el contenido del elemento.

(Heredado de TextElement)
FontStretch

Obtiene o establece el ancho del glifo de la fuente de una familia que se va a seleccionar.

(Heredado de TextElement)
FontStyle

Obtiene o establece el estilo de fuente del contenido de este elemento.

(Heredado de TextElement)
FontWeight

Obtiene o establece el peso de fuente de nivel superior que se va a seleccionar de la familia de fuentes para el contenido de este elemento.

(Heredado de TextElement)
Foreground

Obtiene o establece el pincel que se va a aplicar al contenido de este elemento.

(Heredado de TextElement)
Inlines

Obtiene una inlineCollection que contiene los elementos insertados de nivel superior que incluyen el contenido de Span.

(Heredado de Span)
IsAccessKeyScope

Obtiene o establece un valor que indica si un elemento define su propio ámbito de clave de acceso.

(Heredado de TextElement)
IsTabStop

Obtiene o establece un valor que indica si el hipervínculo se incluye en la navegación por pestañas.

IsTabStopProperty

Identifica la propiedad de dependencia IsTabStop.

IsTextScaleFactorEnabled

Obtiene o establece si la ampliación automática del texto, para reflejar la configuración del tamaño del texto del sistema, está habilitada.

(Heredado de TextElement)
KeyTipHorizontalOffset

Obtiene o establece un valor que indica la distancia izquierda o derecha que se coloca la información sobre claves en relación con el elemento de texto.

(Heredado de TextElement)
KeyTipPlacementMode

Obtiene o establece un valor que indica dónde se coloca keyTip en relación con el elemento de texto.

(Heredado de TextElement)
KeyTipVerticalOffset

Obtiene o establece un valor que indica hasta dónde se coloca la información sobre claves en relación con el elemento de texto.

(Heredado de TextElement)
Language

Obtiene o establece información de idioma de localización o globalización que se aplica a un TextElement.

(Heredado de TextElement)
Name

Obtiene o establece una identificación única para el objeto . El nombre solo se puede establecer a partir del análisis inicial de XAML.

(Heredado de TextElement)
NavigateUri

Obtiene o establece el identificador uniforme de recursos (URI) al que navegar cuando se activa el hipervínculo .

NavigateUriProperty

Identifica la propiedad de dependencia NavigateUri .

TabIndex

Obtiene o establece un valor que determina el orden en el que los elementos reciben el foco cuando el usuario navega por los controles presionando la tecla Tab.

TabIndexProperty

Identifica la propiedad de dependencia TabIndex.

TextDecorations

Obtiene o establece un valor que indica qué decoraciones se aplican al texto.

(Heredado de TextElement)
UnderlineStyle

Obtiene o establece un valor que indica qué tipo de subrayado se muestra en el hipervínculo.

UnderlineStyleProperty

Identifica la propiedad de dependencia UnderlineStyle .

XamlRoot

Obtiene o establece el xamlRoot en el que se está viendo este elemento.

(Heredado de TextElement)
XYFocusDown

Obtiene o establece el objeto que obtiene el foco cuando un usuario presiona el Panel direccional (DPAD) hacia abajo.

XYFocusDownNavigationStrategy

Obtiene o establece un valor que especifica la estrategia utilizada para determinar el elemento de destino de una navegación hacia abajo.

XYFocusDownNavigationStrategyProperty

Identifica la propiedad de dependencia XYFocusDownNavigationStrategy .

XYFocusDownProperty

Identifica la propiedad de dependencia XYFocusDown .

XYFocusLeft

Obtiene o establece el objeto que obtiene el foco cuando un usuario presiona el Panel direccional (DPAD) a la izquierda.

XYFocusLeftNavigationStrategy

Obtiene o establece un valor que especifica la estrategia utilizada para determinar el elemento de destino de un panel de navegación izquierdo.

XYFocusLeftNavigationStrategyProperty

Identifica la propiedad de dependencia XYFocusLeftNavigationStrategy .

XYFocusLeftProperty

Identifica la propiedad de dependencia XYFocusLeft .

XYFocusRight

Obtiene o establece el objeto que obtiene el foco cuando un usuario presiona el panel direccional (DPAD) a la derecha.

XYFocusRightNavigationStrategy

Obtiene o establece un valor que especifica la estrategia utilizada para determinar el elemento de destino de una navegación derecha.

XYFocusRightNavigationStrategyProperty

Identifica la propiedad de dependencia XYFocusRightNavigationStrategy .

XYFocusRightProperty

Identifica la propiedad de dependencia XYFocusRight .

XYFocusUp

Obtiene o establece el objeto que obtiene el foco cuando un usuario presiona el Panel direccional (DPAD) hacia arriba.

XYFocusUpNavigationStrategy

Obtiene o establece un valor que especifica la estrategia utilizada para determinar el elemento de destino de una navegación ascendente.

XYFocusUpNavigationStrategyProperty

Identifica la propiedad de dependencia XYFocusUpNavigationStrategy .

XYFocusUpProperty

Identifica la propiedad de dependencia XYFocusUp .

Métodos

ClearValue(DependencyProperty)

Borra el valor local de una propiedad de dependencia.

(Heredado de DependencyObject)
FindName(String)

Recupera un objeto en el gráfico de objetos en tiempo de ejecución o modelo de objetos haciendo referencia al valor del atributo x:Name o Name del objeto.

(Heredado de TextElement)
Focus(FocusState)

Intenta establecer el foco en el hipervínculo.

GetAnimationBaseValue(DependencyProperty)

Devuelve cualquier valor base establecido para una propiedad de dependencia, que se aplicaría en los casos en los que una animación no está activa.

(Heredado de DependencyObject)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia de dependencyObject.

(Heredado de DependencyObject)
OnDisconnectVisualChildren()

Invalide este método para implementar cómo debe comportarse el diseño y la lógica cuando se quitan elementos de una propiedad secundaria o contenido específico de clase.

(Heredado de TextElement)
ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si se establece un valor local.

(Heredado de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una función de notificación para escuchar los cambios en una dependencyProperty específica en esta instancia de DependencyObject .

(Heredado de DependencyObject)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia en dependencyObject.

(Heredado de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela una notificación de cambio registrada anteriormente mediante una llamada a RegisterPropertyChangedCallback.

(Heredado de DependencyObject)

Eventos

AccessKeyDisplayDismissed

Se produce cuando se completa la secuencia de claves de acceso para notificar a los controles que deben ocultar los objetos visuales de clave de acceso.

(Heredado de TextElement)
AccessKeyDisplayRequested

Se produce cuando se inicia la secuencia de claves de acceso para notificar a los controles que deben mostrar objetos visuales de clave de acceso.

(Heredado de TextElement)
AccessKeyInvoked

Se produce cuando un usuario completa una secuencia de claves de acceso para notificar al elemento que se debe invocar la acción de clave de acceso.

(Heredado de TextElement)
Click

Se produce cuando se hace clic en hipervínculo.

GotFocus

Se produce cuando un hipervínculo recibe el foco.

LostFocus

Se produce cuando un hipervínculo pierde el foco.

Se aplica a

Consulte también