Hyperlink Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет встроенный элемент содержимого уровня, предоставляющий средства для размещения гиперссылок.
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 .../>
- Наследование
- Атрибуты
Примеры
Ниже приведен пример простого элемента Гиперссылки в TextBlock.
В XAML создание элементов содержимого неявно, поэтому можно добавить текст ссылки непосредственно в гиперссылку и гиперссылку непосредственно в элемент TextBlock .
В коде необходимо явно создать каждый элемент Run , задать его свойство Text и добавить его в соответствующую коллекцию inlines (Гиперссылка или 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);
В этом примере показан элемент Гиперссылки в TextBlock с другим текстом.
В XAML создание элементов содержимого неявно, поэтому можно добавить текст ссылки непосредственно в гиперссылку. Элемент Span с атрибутом используется для сохранения пробела xml:space="preserve" вокруг гиперссылки.
В коде необходимо явно создать каждый элемент Run , задать его свойство Text и добавить его в соответствующую коллекцию inlines (Гиперссылка или 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);
Ниже приведен пример простого элемента Гиперссылки в TextBlock.
В XAML создание элементов содержимого неявно, поэтому можно добавить текст ссылки непосредственно в гиперссылку и гиперссылку непосредственно в элемент TextBlock . Элемент Span с атрибутом используется для сохранения пробела xml:space="preserve" вокруг гиперссылки.
В коде необходимо явно создать каждый текстовый элемент (например, Run, Paragraph или Italic) и добавить его в соответствующую коллекцию inlines .
<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);
Комментарии
Гиперссылка и гиперссылкаButton
Существует два способа добавления гиперссылки в приложение XAML. Гиперссылка и ГиперссылкаButton имеют аналогичную цель, чтобы пользователь запускал определенный URI с помощью отдельного приложения браузера.+ Используйте встроенный текстовый элемент Гиперссылки внутри элемента управления текстом. Элемент Гиперссылки передается с другими текстовыми элементами и его можно использовать в любом inlineCollection.
- Используйте элемент управления ГиперссылкаButton в любом месте приложения. ГиперссылкаButton — это специализированный элемент управления Button, который можно использовать в любом месте, где вы будете использовать кнопку. Дополнительные сведения см. в разделе ГиперссылкаButton.
Встроенная гиперссылка
Элемент Гиперссылки используется для добавления интерактивного текста в содержимое TextBlock или RichTextBlock. Гиперссылка является производным от встроенного класса, поэтому его можно поместить в любой контейнер, имеющий InlineCollection в качестве свойства Inlines, например TextBlock, Paragraph или Span.
Tip
При использовании гиперссылки в контейнере Span с другими текстовыми элементами в XAML примените xml:space="preserve" атрибут к Диапазону , чтобы сохранить пробел между гиперссылкой и другими элементами.
Перейти к URI
Чтобы использовать гиперссылку для перехода к универсальному идентификатору ресурса (URI), задайте свойство NavigateUri . Когда пользователь щелкает или нажимает элемент Гиперссылки, указанный универсальный код ресурса (URI) открывается в браузере по умолчанию. Браузер по умолчанию запускается в отдельном процессе от приложения.
Tip
Вам не нужно использовать http: или https: схемы. Вы можете использовать такие схемы, как ms-appx:, ms-appdata:, или ms-resources:, если в этих расположениях есть содержимое ресурсов, которое подходит для загрузки в браузере. Однако файл: схема специально заблокирована. Дополнительные сведения см. о схемах URI .
Когда пользователь щелкает гиперссылку, значение свойства NavigateUri передается в системный обработчик типов и схем универсального идентификатора ресурса (URI). Затем система запускает приложение, зарегистрированное для схемы универсального идентификатора ресурса (URI), предоставленного для NavigateUri.
Если вы не хотите, чтобы гиперссылка загружала содержимое в веб-браузере по умолчанию (и не хотите, чтобы браузер отображалась), не устанавливайте значение для NavigateUri. Вместо этого обработайте событие Click и напишите нужный код.
Обработка события Click
Используйте событие Click для действий, отличных от запуска универсального идентификатора ресурса (URI) в браузере, например навигации в приложении. Например, если вы хотите загрузить новую страницу приложения, а не открыть браузер, вызовите метод Frame.Navigate в обработчике событий Click , чтобы перейти на новую страницу приложения. Если требуется, чтобы внешний универсальный идентификатор ресурса (URI) загружалось в элементе управления WebView2 , который также существует в приложении, вызовите WebView2.NavigateToString(System.String) в рамках логики обработчика щелчка .
Обычно событие Click не обрабатывается, а также указывает значение NavigateUri , так как они представляют два разных способа использования элемента Гиперссылки. Если вы намерены открыть универсальный код ресурса (URI) в браузере по умолчанию, и вы указали значение для NavigateUri, не обрабатывайте событие Click . И наоборот, если вы обрабатываете событие Click , не указывайте NavigateUri.
В обработчике событий Click ничего нельзя сделать, чтобы браузер по умолчанию не загружал любой допустимый целевой объект, указанный для NavigateUri; это действие выполняется автоматически (асинхронно) при активации гиперссылки и не может быть отменено из обработчика событий Click .
Ограничения гиперссылки
Так как гиперссылка не является uiElement, она не имеет набора событий ввода элемента пользовательского интерфейса, таких как Tapped, PointerPressed и т. д. Вместо этого гиперссылка имеет собственное событие Click , а также неявное поведение системы загрузки любого универсального идентификатора ресурса (URI), указанного как NavigateUri. Система обрабатывает все входные действия, которые должны вызывать действия гиперссылки и вызывать событие Click в ответ.
Гиперссылка имеет ограничения на содержимое, которое может находиться в её коллекции Inlines. В частности, гиперссылка разрешает выполнение и другие типы диапазонов , которые не являются другой гиперссылкой. InlineUIContainer не может находиться в коллекции inlines гиперссылки. При попытке добавить ограниченное содержимое выбрасывается исключение недопустимого аргумента или исключение синтаксического анализа XAML.
Поведение гиперссылки, темы и стиля
Гиперссылка не наследуется от элемента управления, поэтому у нее нет свойства Style или шаблона. Вы можете изменить свойства, унаследованные от TextElement, например foreground или FontFamily, чтобы изменить внешний вид гиперссылки, но нельзя использовать общий стиль или шаблон для применения изменений. Вместо использования шаблона рекомендуется использовать общие ресурсы для значений свойств Гиперссылки для обеспечения согласованности. Некоторые свойства Гиперссылки используют значения по умолчанию из значения расширения разметки {ThemeResource} , предоставленного системой. Это позволяет переключить внешний вид гиперссылки соответствующим образом, когда пользователь изменяет системную тему во время выполнения.
Цвет гиперссылки по умолчанию — это цвет акцента системы. Для переопределения этого свойства можно задать свойство Foreground .
По умолчанию гиперссылок подчеркивается. Это подчеркивание важно, так как оно помогает соответствовать требованиям доступности. Пользователи цветовой слепой используют подчеркивание для различения гиперссылок и другого текста. Вы можете задать свойство UnderlineStyle для отключения подчеркивания. При отключении подчеркивания следует добавить другой тип различия форматирования, чтобы отличить гиперссылки от другого текста, например FontWeight или FontStyle.
Конструкторы
| Имя | Описание |
|---|---|
| Hyperlink() |
Инициализирует новый экземпляр класса Гиперссылки . |
Свойства
| Имя | Описание |
|---|---|
| AccessKey |
Возвращает или задает ключ доступа для этого элемента. (Унаследовано от TextElement) |
| AccessKeyScopeOwner |
Возвращает или задает исходный элемент, предоставляющий область ключа доступа для этого элемента, даже если он не находится в визуальном дереве исходного элемента. (Унаследовано от TextElement) |
| AllowFocusOnInteraction |
Возвращает или задает значение, указывающее, автоматически ли элемент получает фокус при взаимодействии с ним пользователем. (Унаследовано от TextElement) |
| CharacterSpacing |
Возвращает или задает равномерное интервал между символами в единицах 1/1000 эм. (Унаследовано от TextElement) |
| ContentEnd |
Возвращает TextPointer , представляющий конец содержимого в элементе. (Унаследовано от TextElement) |
| ContentStart |
Возвращает TextPointer , представляющий начало содержимого в элементе. (Унаследовано от TextElement) |
| Dispatcher |
Всегда возвращается |
| DispatcherQueue |
Возвращает, |
| ElementEnd |
Получает TextPointer , представляющий позицию сразу после окончания элемента. (Унаследовано от TextElement) |
| ElementSoundMode |
Возвращает или задает значение, указывающее предпочтения элемента управления для воспроизведения звуков. |
| ElementSoundModeProperty |
Определяет свойство зависимостей ElementSoundMode . |
| ElementStart |
Получает TextPointer , представляющий позицию непосредственно перед началом элемента. (Унаследовано от TextElement) |
| ExitDisplayModeOnAccessKeyInvoked |
Возвращает или задает значение, указывающее, закрывается ли отображение ключа доступа при вызове ключа доступа. (Унаследовано от TextElement) |
| FocusState |
Возвращает значение, указывающее, имеет ли эта гиперссылка фокус и режим получения фокуса. |
| FocusStateProperty |
Определяет свойство зависимостей FocusState . |
| FontFamily |
Возвращает или задает предпочитаемое семейство шрифтов верхнего уровня для содержимого элемента. (Унаследовано от TextElement) |
| FontSize |
Возвращает или задает размер шрифта для содержимого элемента. (Унаследовано от TextElement) |
| FontStretch |
Возвращает или задает ширину глифа шрифта в семействе для выбора. (Унаследовано от TextElement) |
| FontStyle |
Возвращает или задает стиль шрифта для содержимого в этом элементе. (Унаследовано от TextElement) |
| FontWeight |
Возвращает или задает вес шрифта верхнего уровня для выбора из семейства шрифтов для содержимого этого элемента. (Унаследовано от TextElement) |
| Foreground |
Возвращает или задает Кисть для применения к содержимому этого элемента. (Унаследовано от TextElement) |
| Inlines |
Возвращает inlineCollection , содержащий встроенные элементы верхнего уровня, содержащие содержимое Span. (Унаследовано от Span) |
| IsAccessKeyScope |
Возвращает или задает значение, указывающее, определяет ли элемент собственную область ключа доступа. (Унаследовано от TextElement) |
| IsTabStop |
Возвращает или задает значение, указывающее, включена ли гиперссылка в навигацию по вкладкам. |
| IsTabStopProperty |
Определяет свойство зависимостей IsTabStop. |
| IsTextScaleFactorEnabled |
Возвращает или задает, включен ли автоматическое расширение текста для отражения параметра размера системного текста. (Унаследовано от TextElement) |
| KeyTipHorizontalOffset |
Возвращает или задает значение, указывающее, насколько слева или справа находится подсказка в связи с текстовым элементом. (Унаследовано от TextElement) |
| KeyTipPlacementMode |
Возвращает или задает значение, указывающее, где находится подсказка ключа в связи с текстовым элементом. (Унаследовано от TextElement) |
| KeyTipVerticalOffset |
Возвращает или задает значение, указывающее, насколько далеко вверх или вниз подсказка помещается в отношение к текстовому элементу. (Унаследовано от TextElement) |
| Language |
Возвращает или задает сведения о языке локализации и глобализации, которые применяются к TextElement. (Унаследовано от TextElement) |
| Name |
Возвращает или задает уникальную идентификацию объекта. Имя можно задать только из начального синтаксического анализа XAML. (Унаследовано от TextElement) |
| NavigateUri |
Возвращает или задает универсальный идентификатор ресурса (URI), к которому необходимо перейти при активации гиперссылки . |
| NavigateUriProperty |
Определяет свойство зависимостей NavigateUri . |
| TabIndex |
Возвращает или задает значение, определяющее порядок, в котором элементы получают фокус при переходе пользователя через элементы управления, нажав клавишу TAB. |
| TabIndexProperty |
Определяет свойство зависимостей TabIndex. |
| TextDecorations |
Возвращает или задает значение, указывающее, какие украшения применяются к тексту. (Унаследовано от TextElement) |
| UnderlineStyle |
Возвращает или задает значение, указывающее, какой вид подчеркивания отображается под гиперссылкой. |
| UnderlineStyleProperty |
Определяет свойство зависимостей ПодчеркиванияStyle . |
| XamlRoot |
Возвращает или задает xamlRoot, в котором просматривается этот элемент. (Унаследовано от TextElement) |
| XYFocusDown |
Возвращает или задает объект, который получает фокус, когда пользователь нажимает клавишу Directional Pad (DPAD) вниз. |
| XYFocusDownNavigationStrategy |
Возвращает или задает значение, указывающее стратегию, используемую для определения целевого элемента навигации вниз. |
| XYFocusDownNavigationStrategyProperty |
Определяет свойство зависимостей XYFocusDownNavigationStrategy . |
| XYFocusDownProperty |
Определяет свойство зависимостей XYFocusDown . |
| XYFocusLeft |
Возвращает или задает объект, который получает фокус, когда пользователь нажимает клавишу Directional Pad (DPAD) слева. |
| XYFocusLeftNavigationStrategy |
Возвращает или задает значение, указывающее стратегию, используемую для определения целевого элемента навигации слева. |
| XYFocusLeftNavigationStrategyProperty |
Определяет свойство зависимостей XYFocusLeftNavigationStrategy . |
| XYFocusLeftProperty |
Определяет свойство зависимостей XYFocusLeft . |
| XYFocusRight |
Получает или задает объект, который получает фокус, когда пользователь нажимает клавишу Directional Pad (DPAD) справа. |
| XYFocusRightNavigationStrategy |
Возвращает или задает значение, указывающее стратегию, используемую для определения целевого элемента правой навигации. |
| XYFocusRightNavigationStrategyProperty |
Определяет свойство зависимостей XYFocusRightNavigationStrategy . |
| XYFocusRightProperty |
Определяет свойство зависимостей XYFocusRight . |
| XYFocusUp |
Возвращает или задает объект, который получает фокус, когда пользователь нажимает клавишу Directional Pad (DPAD) вверх. |
| XYFocusUpNavigationStrategy |
Возвращает или задает значение, указывающее стратегию, используемую для определения целевого элемента навигации вверх. |
| XYFocusUpNavigationStrategyProperty |
Определяет свойство зависимостей XYFocusUpNavigationStrategy . |
| XYFocusUpProperty |
Определяет свойство зависимостей XYFocusUp . |
Методы
| Имя | Описание |
|---|---|
| ClearValue(DependencyProperty) |
Очищает локальное значение свойства зависимостей. (Унаследовано от DependencyObject) |
| FindName(String) |
Извлекает объект в графе объектов объектной модели или среды выполнения, ссылаясь на значение атрибута x:Name или Name объекта. (Унаследовано от TextElement) |
| Focus(FocusState) |
Пытается задать фокус на гиперссылке. |
| GetAnimationBaseValue(DependencyProperty) |
Возвращает любое базовое значение, установленное для свойства зависимостей, которое будет применяться в случаях, когда анимация не активна. (Унаследовано от DependencyObject) |
| GetValue(DependencyProperty) |
Возвращает текущее эффективное значение свойства зависимостей из DependencyObject. (Унаследовано от DependencyObject) |
| OnDisconnectVisualChildren() |
Переопределите этот метод, чтобы реализовать поведение макета и логики при удалении элементов из содержимого определенного класса или дочернего свойства. (Унаследовано от TextElement) |
| ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если задано локальное значение. (Унаследовано от DependencyObject) |
| RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Регистрирует функцию уведомлений для прослушивания изменений в определенном экземпляре DependencyProperty в этом экземпляре DependencyObject . (Унаследовано от DependencyObject) |
| SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей в DependencyObject. (Унаследовано от DependencyObject) |
| UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Отменяет уведомление об изменении, которое ранее было зарегистрировано путем вызова RegisterPropertyChangedCallback. (Унаследовано от DependencyObject) |
События
| Имя | Описание |
|---|---|
| AccessKeyDisplayDismissed |
Происходит, когда последовательность ключей доступа завершена, чтобы уведомить элементы управления о том, что они должны скрывать визуальные элементы ключа доступа. (Унаследовано от TextElement) |
| AccessKeyDisplayRequested |
Происходит при запуске последовательности ключей доступа для уведомления элементов управления о том, что они должны отображать визуальные элементы ключа доступа. (Унаследовано от TextElement) |
| AccessKeyInvoked |
Происходит, когда пользователь завершает последовательность ключей доступа, чтобы уведомить элемент о том, что действие ключа доступа должно вызываться. (Унаследовано от TextElement) |
| Click |
Происходит при щелчке гиперссылки . |
| GotFocus |
Происходит, когда гиперссылка получает фокус. |
| LostFocus |
Происходит при потере фокуса гиперссылки . |