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 の単純な Hyperlink 要素の例を次に示します。

XAML では、コンテンツ要素の作成は暗黙的であるため、リンク テキストを Hyperlink に直接追加し、Hyperlink を TextBlock 要素に直接追加できます。

コードでは、各 Run 要素を明示的に作成し、その Text プロパティを設定し、適切な Inlines コレクション (Hyperlink または 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 内の Hyperlink 要素を他のテキストと共に示します。

XAML では、コンテンツ要素の作成は暗黙的であるため、ハイパーリンクにリンク テキストを直接追加できます。 xml:space="preserve"属性を持つ Span 要素は、ハイパーリンクの周囲の空白を保持するために使用されます。

コードでは、各 Run 要素を明示的に作成し、その Text プロパティを設定し、適切な Inlines コレクション (Hyperlink または 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 の単純な Hyperlink 要素の例を次に示します。

XAML では、コンテンツ要素の作成は暗黙的であるため、リンク テキストを Hyperlink に直接追加し、Hyperlink を TextBlock 要素に直接追加できます。 xml:space="preserve"属性を持つ Span 要素は、ハイパーリンクの周囲の空白を保持するために使用されます。

コードでは、各テキスト要素 ( RunParagraphItalic など) を明示的に作成し、適切な 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 アプリにハイパーリンクを追加するには、2 つの方法があります。 ハイパーリンクと HyperlinkButton には、ユーザーが別のブラウザー アプリを使用して特定の URI を起動できるようにするのと同様の目的があります。+ テキスト コントロール内でインラインハイパーリンク テキスト要素を使用します。 Hyperlink 要素は他のテキスト要素と共に流れ、任意の InlineCollection で使用できます。

  • アプリ内の任意の場所で HyperlinkButton コントロールを使用します。 HyperlinkButton は、ボタンを使用する任意の場所で使用できる特殊な Button コントロールです。 詳細については、「 HyperlinkButton」を参照してください。

Hyperlink 要素を使用して、 TextBlock または RichTextBlock のコンテンツに対話型テキストを追加します。 ハイパーリンクは Inline クラスから派生しているため、 InlineCollectionInlines プロパティとして持つ任意のコンテナー内に配置できます ( TextBlockParagraphSpan など)。

Tip

XAML の他のテキスト要素と 共に Span コンテナー内でハイパーリンクを使用する場合は、ハイパーリンクと他の要素の間に空白を保持するために、 xml:space="preserve" 属性を Span に適用します。

ハイパーリンクを使用して Uniform Resource Identifier (URI) に移動するには、 NavigateUri プロパティを設定します。 ユーザーが Hyperlink 要素をクリックまたはタップすると、指定した Uniform Resource Identifier (URI) が既定のブラウザーで開きます。 既定のブラウザーは、アプリとは別のプロセスで実行されます。

Tip

http: または https: スキームを使用する必要はありません。 ms-appx:ms-appdata:ms-resources: などのスキームを使用できます(これらの場所にブラウザーに読み込むのに適したリソース コンテンツがある場合)。 ただし、 file: スキームは特にブロックされます。 詳細については、「 URI スキームを参照してください。

ユーザーがハイパーリンクをクリックすると、 NavigateUri プロパティの値が、URI (Uniform Resource Identifier) 型とスキームのシステム ハンドラーに渡されます。 次に、 NavigateUri 用に指定された URI (Uniform Resource Identifier) のスキームに登録されているアプリが起動されます。

ハイパーリンクが既定の Web ブラウザーにコンテンツを読み込まない (ブラウザーを表示したくない) 場合は、 NavigateUri の値を設定しないでください。 代わりに、 Click イベントを処理し、必要な処理を行うコードを記述します。

Click イベントの処理

アプリ内のナビゲーションなど、ブラウザーで Uniform Resource Identifier (URI) を起動する以外のアクションには 、Click イベントを使用します。 たとえば、ブラウザーを開くのではなく新しいアプリ ページを読み込む場合は、Click イベント ハンドラー内で Frame.Navigate メソッドを呼び出して、新しいアプリ ページに移動します。 外部の絶対 Uniform Resource Identifier (URI) をアプリにも存在する WebView2 コントロール内に読み込む場合は、Click ハンドラー ロジックの一部として WebView2.NavigateToString(System.String) 呼び出します。

通常、 Click イベントや NavigateUri 値の指定は処理しません。これらは Hyperlink 要素を使用する 2 つの異なる方法を表します。 目的が既定のブラウザーで URI を開き、 NavigateUri の値を指定している場合は、 Click イベントを処理しないでください。 逆に、 Click イベントを処理する場合は、 NavigateUri を指定しないでください。

既定のブラウザーが NavigateUri に指定された有効なターゲットを読み込むのを防ぐために、Click イベント ハンドラー内でできることは何もありません。このアクションは、ハイパーリンクがアクティブ化されたときに自動的に (非同期的に) 実行され、Click イベント ハンドラー内から取り消すことはできません。

ハイパーリンクは UIElement ではないため、 タップPointerPressed などの UI 要素入力イベントのセットはありません。 代わりに、ハイパーリンクには独自の Click イベントと、 NavigateUri として指定された URI (Uniform Resource Identifier) を読み込むシステムの暗黙的な動作があります。 システムは、ハイパーリンク アクションを呼び出す必要があるすべての入力アクションを処理し、応答で Click イベントを発生させます。

ハイパーリンクには、 Inlines コレクションに存在できるコンテンツに制限があります。 具体的には、ハイパーリンクでは、別のハイパーリンクではない Run およびその他の Span 型のみが許可されます。 InlineUIContainer をハイパーリンクの Inlines コレクションに含めることはできません。 制限付きコンテンツを追加しようとすると、無効な引数の例外または XAML 解析例外がスローされます。

ハイパーリンクは Control から継承されないため、 Style プロパティや Template はありません。 TextElement から継承されたプロパティ (Foreground や FontFamily など) を編集してハイパーリンクの外観を変更することはできますが、共通のスタイルやテンプレートを使用して変更を適用することはできません。 テンプレートを使用する代わりに、Hyperlink プロパティの値に共通のリソースを使用して一貫性を提供することを検討してください。 Hyperlink の一部のプロパティでは、システムによって提供される {ThemeResource} マークアップ拡張 値の既定値が使用されます。 これにより、ユーザーが実行時にシステム テーマを変更したときに、ハイパーリンクの外観を適切な方法で切り替えることができます。

ハイパーリンクの既定の色は、システムのアクセント カラーです。 これをオーバーライドするには、 Foreground プロパティを設定できます。

既定では、ハイパーリンクには下線が付けられます。 この下線は、アクセシビリティ要件を満たすのに役立つので重要です。 色覚障疵のあるユーザーは、下線を使用してハイパーリンクとその他のテキストを区別します。 UnderlineStyle プロパティを設定して、下線を無効にすることができます。 下線を無効にする場合は、ハイパーリンクと他のテキスト ( FontWeightFontStyle など) を区別するために、他の種類の書式設定の違いを追加することを検討する必要があります。

コンストラクター

名前 説明
Hyperlink()

Hyperlink クラスの新しいインスタンスを初期化します。

プロパティ

名前 説明
AccessKey

この要素のアクセス キーを取得または設定します。

(継承元 TextElement)
AccessKeyScopeOwner

ソース要素のビジュアル ツリーにない場合でも、この要素のアクセス キー スコープを提供するソース要素を取得または設定します。

(継承元 TextElement)
AllowFocusOnInteraction

ユーザーが要素を操作するときに要素が自動的にフォーカスを取得するかどうかを示す値を取得または設定します。

(継承元 TextElement)
CharacterSpacing

em の 1/1000 単位で文字間の均一な間隔を取得または設定します。

(継承元 TextElement)
ContentEnd

要素内のコンテンツの末尾を表す TextPointer を取得します。

(継承元 TextElement)
ContentStart

要素内のコンテンツの先頭を表す TextPointer を取得します。

(継承元 TextElement)
Dispatcher

Windows アプリ SDK アプリで常に null を返します。 代わりに DispatcherQueue を使用してください。

(継承元 DependencyObject)
DispatcherQueue

このオブジェクトが関連付けられている DispatcherQueue を取得します。 DispatcherQueueは、コードが非 UI スレッドによって開始された場合でも、UI スレッド上の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

Span の内容を含む最上位のインライン要素を含む InlineCollection を取得 します

(継承元 Span)
IsAccessKeyScope

要素が独自のアクセス キー スコープを定義するかどうかを示す値を取得または設定します。

(継承元 TextElement)
IsTabStop

ハイパーリンクがタブ ナビゲーションに含まれるかどうかを示す値を取得または設定します。

IsTabStopProperty

IsTabStop 依存関係プロパティを識別します。

IsTextScaleFactorEnabled

システム テキスト サイズの設定を反映するために、自動テキスト拡大を有効にするかどうかを取得または設定します。

(継承元 TextElement)
KeyTipHorizontalOffset

テキスト要素に対してキーヒントを配置する距離を示す値を取得または設定します。

(継承元 TextElement)
KeyTipPlacementMode

テキスト要素に関連してキーヒントが配置される場所を示す値を取得または設定します。

(継承元 TextElement)
KeyTipVerticalOffset

テキスト要素に対するキーヒントの配置距離を示す値を取得または設定します。

(継承元 TextElement)
Language

TextElement に適用されるローカライズ/グローバリゼーション言語情報を取得または設定します。

(継承元 TextElement)
Name

オブジェクトの一意の ID を取得または設定します。 名前は、XAML の最初の解析からのみ設定できます。

(継承元 TextElement)
NavigateUri

ハイパーリンクがアクティブになったときに移動する URI (Uniform Resource Identifier) を取得または設定します。

NavigateUriProperty

NavigateUri 依存関係プロパティを識別します。

TabIndex

ユーザーが Tab キーを押してコントロール内を移動するときに要素がフォーカスを受け取る順序を決定する値を取得または設定します。

TabIndexProperty

TabIndex 依存関係プロパティを識別します。

TextDecorations

テキストに適用される装飾を示す値を取得または設定します。

(継承元 TextElement)
UnderlineStyle

ハイパーリンクの下に表示される下線の種類を示す値を取得または設定します。

UnderlineStyleProperty

UnderlineStyle 依存関係プロパティを識別します。

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)

この DependencyObject インスタンスの特定の DependencyProperty への変更をリッスンするための通知関数を登録します。

(継承元 DependencyObject)
SetValue(DependencyProperty, Object)

DependencyObject の依存関係プロパティのローカル値を設定します。

(継承元 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback を呼び出して以前に登録した変更通知を取り消します。

(継承元 DependencyObject)

イベント

名前 説明
AccessKeyDisplayDismissed

アクセス キー のビジュアルを非表示にする必要があることをコントロールに通知するためにアクセス キー シーケンスが完了したときに発生します。

(継承元 TextElement)
AccessKeyDisplayRequested

アクセス キー のビジュアルを表示する必要があることをコントロールに通知するためにアクセス キー シーケンスが開始されたときに発生します。

(継承元 TextElement)
AccessKeyInvoked

ユーザーがアクセス キー シーケンスを完了して、アクセス キー アクションを呼び出す必要があることを要素に通知したときに発生します。

(継承元 TextElement)
Click

ハイパーリンクがクリックされたときに発生します。

GotFocus

ハイパーリンクがフォーカスを受け取ったときに発生します。

LostFocus

ハイパーリンクがフォーカスを失ったときに発生します。

適用対象

こちらもご覧ください