Язык

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 .../>
Наследование
Object Platform::Object IInspectable DependencyObject TextElement Inline 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);

Комментарии

Существует два способа добавления гиперссылки в приложение XAML. Гиперссылка и ГиперссылкаButton имеют аналогичную цель, чтобы пользователь запускал определенный URI с помощью отдельного приложения браузера.+ Используйте встроенный текстовый элемент Гиперссылки внутри элемента управления текстом. Элемент Гиперссылки передается с другими текстовыми элементами и его можно использовать в любом inlineCollection.

Элемент Гиперссылки используется для добавления интерактивного текста в содержимое TextBlock или RichTextBlock. Гиперссылка является производным от встроенного класса, поэтому его можно поместить в любой контейнер, имеющий InlineCollection в качестве свойства Inlines, например TextBlock, Paragraph или Span.

Tip

При использовании гиперссылки в контейнере Span с другими текстовыми элементами в XAML примените xml:space="preserve" атрибут к Диапазону , чтобы сохранить пробел между гиперссылкой и другими элементами.

Чтобы использовать гиперссылку для перехода к универсальному идентификатору ресурса (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

Всегда возвращается null в приложении пакета SDK для приложений windows. Вместо этого используйте DispatcherQueue .

(Унаследовано от DependencyObject)
DispatcherQueue

Возвращает, DispatcherQueue с которым связан этот объект. Представляет DispatcherQueue собой объект, который может получить доступ к 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

Определяет свойство зависимостей Подчеркивания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

Происходит при потере фокуса гиперссылки .

Применяется к

См. также раздел