Hyperlink Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет элемент содержимого встроенного уровня, предоставляющий средства для размещения гиперссылок.
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 .../>
- Наследование
- Атрибуты
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v1.0)
|
Примеры
Ниже приведен пример простого элемента 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);
В этом примере показан элемент Hyperlink в 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);
Ниже приведен пример простого элемента Hyperlink в 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 можно двумя способами. Hyperlink и HyperlinkButton имеют аналогичную цель, чтобы позволить пользователю запускать определенный URI с помощью отдельного приложения браузера.+ Используйте встроенный текстовый элемент Hyperlink внутри текстового элемента управления . Элемент Hyperlink передается вместе с другими текстовыми элементами, и его можно использовать в любой коллекции InlineCollection.
- Используйте элемент управления HyperlinkButton в любом месте приложения. HyperlinkButton — это специализированный элемент управления Кнопка, который можно использовать в любом месте, где будет использоваться кнопка. Дополнительные сведения см. в разделе HyperlinkButton.
Встроенная гиперссылка
Элемент Hyperlink используется для добавления интерактивного текста в содержимое Элемента TextBlock или RichTextBlock. Гиперссылка является производным от класса Inline , поэтому ее можно поместить в любой контейнер, имеющий InlineCollection в качестве свойства Inlines , например TextBlock, Paragraph или Span.
Совет
При использовании гиперссылки в контейнере Span с другими текстовыми элементами в XAML примените xml:space="preserve"
атрибут к Span , чтобы сохранить пробелы между гиперссылкой и другими элементами.
Переход к URI
Чтобы использовать гиперссылку для перехода к универсальному коду ресурса (URI), задайте свойство NavigateUri . Когда пользователь щелкает элемент Hyperlink, указанный универсальный код ресурса (URI) открывается в браузере по умолчанию. Браузер по умолчанию запускается в виде отдельного процесса из приложения.
Совет
Использовать схемы http: или https: не обязательно. Можно использовать такие схемы, как ms-appx:, ms-appdata: или ms-resources:, если содержимое ресурса в этих расположениях подходит для загрузки в браузере. При этом схема file: блокируется. Подробнее см. в разделе Схемы URI.
Когда пользователь щелкает гиперссылку, значение свойства NavigateUri передается в системный обработчик для типов и схем универсального кода ресурса (URI). Затем система запускает приложение, зарегистрированное для схемы универсального кода ресурса (URI), предоставленного для NavigateUri.
Если вы не хотите, чтобы гиперссылка загружала содержимое в веб-браузере по умолчанию (и не хотите, чтобы браузер отображалась), не устанавливайте значение NavigateUri. Вместо этого обработайте событие Click и напишите нужный код.
Обработка события Click
Используйте событие Click для действий, отличных от запуска универсального кода ресурса (URI) в браузере, например для навигации в приложении. Например, если вы хотите загрузить новую страницу приложения, а не открывать браузер, вызовите метод Frame.Navigate в обработчике событий Click , чтобы перейти на новую страницу приложения. Если требуется загрузить внешний абсолютный универсальный код ресурса (URI) в элементе управления WebView , который также существует в приложении, вызовите WebView.Navigate в рамках логики обработчика щелчков .
Обычно вы не обрабатываете событие Click , а не задаете значение NavigateUri , так как они представляют два разных способа использования элемента Hyperlink. Если вы намерены открыть универсальный код ресурса (URI) в браузере по умолчанию и указали значение NavigateUri, не обрабатывайте событие Click . И наоборот, если вы обрабатываете событие Click , не указывайте NavigateUri.
В обработчике событий Click нельзя ничего сделать, чтобы предотвратить загрузку браузером по умолчанию любого допустимого целевого объекта, указанного для NavigateUri; это действие выполняется автоматически (асинхронно) при активации гиперссылки и не может быть отменено в обработчике событий Click .
Ограничения гиперссылок
Поскольку гиперссылка не является элементом UIElement, она не имеет набора событий ввода элементов пользовательского интерфейса, таких как Tapped, PointerPressed и т. д. Вместо этого гиперссылка имеет собственное событие Click , а также неявное поведение системы, загружающей любой универсальный код ресурса (URI), указанный в качестве NavigateUri. Система обрабатывает все действия ввода, которые должны вызывать действия гиперссылки, и вызывает событие Click в ответ.
Гиперссылка имеет ограничения относительно содержимого, которое существует в его коллекции Inlines. В частности, гиперссылка разрешает только Run и другие типы Span, которые не являются другим элементом Hyperlink. InlineUIContainer не может находиться в коллекции Inlines гиперссылки. Попытка добавления содержимого с ограничениями вызовет исключение недопустимого аргумента или исключение анализа XAML.
Гиперссылка и поведение темы/стиля
Гиперссылка не наследуется из Control, поэтому она не содержит свойства Style или Template. Вы можете изменить свойства, унаследованные от TextElement, например Foreground или FontFamily, чтобы изменить внешний вид гиперссылки, но нельзя использовать общий стиль или шаблон для применения изменений. Вместо шаблона используйте общие ресурсы для значений свойств гиперссылки, чтобы обеспечить согласованность. Некоторые свойства гиперссылки используют значения по умолчанию из расширения разметки {ThemeResource} , предоставленного системой. Это позволяет изменять внешний вид гиперссылки, если пользователь изменяет системную тему во время выполнения.
По умолчанию для цвета гиперссылки используется цвет элементов системы. Для переопределения этой настройки можно использовать свойство Foreground.
По умолчанию гиперссылка подчеркнута. Подчеркивание имеет большое значение, поскольку это помогает удовлетворить требованиям специальных возможностей. Страдающие дальтонизмом пользователи по подчеркиванию отличают гиперссылки от другого текста. Чтобы отключить подчеркивание, можно задать свойство UnderlineStyle. При отключении подчеркивания следует рассмотреть возможность добавления других типов различий форматирования, чтобы отличать гиперссылки от другого текста, например FontWeight или FontStyle.
Журнал версий
Версия Windows | Версия пакета SDK | Добавленная стоимость |
---|---|---|
1607 | 14393 | ElementSoundMode |
1607 | 14393 | XYFocusDown |
1607 | 14393 | XYFocusLeft |
1607 | 14393 | XYFocusRight |
1607 | 14393 | XYFocusUp |
1703 | 15063 | Фокус |
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 |
Конструкторы
Hyperlink() |
Инициализирует новый экземпляр класса Hyperlink . |
Свойства
AccessKey |
Возвращает или задает ключ доступа для этого элемента. (Унаследовано от TextElement) |
AccessKeyScopeOwner |
Возвращает или задает исходный элемент, предоставляющий ключ доступа область для этого элемента, даже если он не находится в визуальном дереве исходного элемента. (Унаследовано от TextElement) |
AllowFocusOnInteraction |
Возвращает или задает значение, указывающее, получает ли элемент автоматически фокус при взаимодействии с ним. (Унаследовано от TextElement) |
CharacterSpacing |
Возвращает или задает единый интервал между символами в единицах 1/1000 em. (Унаследовано от TextElement) |
ContentEnd |
Возвращает объект TextPointer , представляющий конец содержимого в элементе . (Унаследовано от TextElement) |
ContentStart |
Возвращает объект TextPointer , представляющий начало содержимого в элементе . (Унаследовано от TextElement) |
Dispatcher |
Возвращает CoreDispatcher , с которым связан этот объект. CoreDispatcher представляет средство, которое может получить доступ к DependencyObject в потоке пользовательского интерфейса, даже если код инициируется потоком, не относящегося к пользовательскому интерфейсу. (Унаследовано от DependencyObject) |
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 |
Идентифицирует свойство зависимости Подчеркивание Стиля . |
XamlRoot |
Возвращает или задает xamlRoot, в котором просматривается этот элемент. (Унаследовано от TextElement) |
XYFocusDown |
Возвращает или задает объект, который получает фокус, когда пользователь нажимает кнопку DPAD вниз. |
XYFocusDownNavigationStrategy |
Возвращает или задает значение, указывающее стратегию, используемую для определения целевого элемента навигации вниз. |
XYFocusDownNavigationStrategyProperty |
Определяет свойство зависимости XYFocusDownNavigationStrategy . |
XYFocusDownProperty |
Определяет свойство зависимости XYFocusDown . |
XYFocusLeft |
Возвращает или задает объект, который получает фокус, когда пользователь нажимает панель направления (DPAD) влево. |
XYFocusLeftNavigationStrategy |
Возвращает или задает значение, указывающее стратегию, используемую для определения целевого элемента левой навигации. |
XYFocusLeftNavigationStrategyProperty |
Определяет свойство зависимости XYFocusLeftNavigationStrategy . |
XYFocusLeftProperty |
Определяет свойство зависимости XYFocusLeft . |
XYFocusRight |
Возвращает или задает объект, который получает фокус, когда пользователь нажимает направление (DPAD) вправо. |
XYFocusRightNavigationStrategy |
Возвращает или задает значение, указывающее стратегию, используемую для определения целевого элемента правильной навигации. |
XYFocusRightNavigationStrategyProperty |
Определяет свойство зависимости XYFocusRightNavigationStrategy . |
XYFocusRightProperty |
Определяет свойство зависимости XYFocusRight . |
XYFocusUp |
Возвращает или задает объект, который получает фокус, когда пользователь нажимает кнопку 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 |
Происходит, когда гиперссылка теряет фокус. |