Hyperlink Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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, "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 .../>
- Herencia
- Atributos
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
Hyperlink y HyperlinkButton
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.
- Usa un control HyperlinkButton en cualquier parte de la aplicación. HyperlinkButton es un control Button especializado que se puede usar en cualquier lugar en el que se usaría un Botón. Para obtener más información, consulta HyperlinkButton.
Hipervínculo insertado
El elemento Hyperlink se usa para agregar texto interactivo al contenido de 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 usas 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.
Navegar a un URI
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 desea cargar una nueva página de aplicación en lugar de abrir un explorador, llame a un método Frame.Navigate dentro del controlador de eventos Click para ir a la nueva página de la aplicación. Si desea que un identificador uniforme (URI) externo y absoluto se cargue dentro de un control WebView2 que también existe en la aplicación, llame a WebView2.NavigateToString(System.String) como parte de la lógica del controlador de clics .
Normalmente no controlas 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 .
Limitaciones de hipervínculo
Dado que un hipervínculo no es 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 Hyperlink 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.
Comportamiento de Hyperlink y el tema y estilo
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 una 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 una extensión de marcado {ThemeResource} proporcionada 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, hyperlink 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.
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 |
Siempre devuelve |
DispatcherQueue |
Obtiene el objeto |
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. |