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

コードでは、各 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 要素に直接追加できます。 属性を持つ Span 要素は、ハイパーリンクの xml:space="preserve" 周囲の空白を保持するために使用されます。

コードでは、各テキスト要素 ( 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 つの方法があります。 Hyperlink と HyperlinkButton には、ユーザーが別のブラウザー アプリを使用して特定の URI を起動できるようにするという同様の目的があります。+ テキスト コントロール内でインラインの Hyperlink テキスト要素を使用します。 Hyperlink 要素は他のテキスト要素と共に流れ、 InlineCollection で使用できます。

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

ヒント

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

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

ヒント

http: または https: スキームを使用する必要はありません。 ブラウザーに読み込むのに適したリソース コンテンツがこれらの場所にある場合は、ms-appx:ms-appdata:、または ms-resources: などのスキームを使うことができます。 ただし、file: スキームは明確に禁止されます。 詳しくは、「URI スキーム」 をご覧ください。

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

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

Click イベントの処理

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

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

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

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

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

ハイパーリンクは コントロール から継承しないため、Style プロパティまたは Template がありません。 TextElement から継承されたプロパティ (Foreground や FontFamily など) を編集してハイパーリンクの外観を変更することはできますが、共通のスタイルやテンプレートを使用して変更を適用することはできません。 テンプレートを使う代わりに、一貫性を保つためにハイパーリンクのプロパティの値の一般的なリソースの使用を検討してください。 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

この要素のコンテンツに適用する Brush を取得または設定します。

(継承元 TextElement)
Inlines

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

(継承元 Span)
IsAccessKeyScope

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

(継承元 TextElement)
IsTabStop

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

IsTabStopProperty

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

IsTextScaleFactorEnabled

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

(継承元 TextElement)
KeyTipHorizontalOffset

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

(継承元 TextElement)
KeyTipPlacementMode

テキスト要素に対する KeyTip の配置場所を示す値を取得または設定します。

(継承元 TextElement)
KeyTipVerticalOffset

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

(継承元 TextElement)
Language

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

(継承元 TextElement)
Name

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

(継承元 TextElement)
NavigateUri

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

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

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

適用対象

こちらもご覧ください