Поделиться через


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

Комментарии

Добавить гиперссылку в приложение 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), задайте свойство 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

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

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

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