Hyperlink クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ハイパーリンクをホストするための機能を提供するインライン レベルのコンテンツ要素を提供します。
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 .../>
- 継承
- 属性
例
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"
周囲の空白を保持するために使用されます。
コードでは、各テキスト要素 ( 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);
注釈
Hyperlink と HyperlinkButton
XAML アプリにハイパーリンクを追加するには、2 つの方法があります。 Hyperlink と HyperlinkButton には、ユーザーが別のブラウザー アプリを使用して特定の URI を起動できるようにするという同様の目的があります。+ テキスト コントロール内でインラインの Hyperlink テキスト要素を使用します。 Hyperlink 要素は他のテキスト要素と共に流れ、 InlineCollection で使用できます。
- アプリ内の任意の場所で HyperlinkButton コントロールを使用します。 HyperlinkButton は、Button を使用する任意の場所で使用できる特殊な Button コントロールです。 詳細については、「 HyperlinkButton」を参照してください。
インライン ハイパーリンク
Hyperlink 要素を使用して、 TextBlock または RichTextBlock のコンテンツに対話型テキストを追加します。 Hyperlink は Inline クラスから派生しているため、 InlineCollection を Inlines プロパティとして持つ任意のコンテナー ( TextBlock、 Paragraph、 Span など) の内部に配置できます。
ヒント
XAML の他のテキスト要素と共に Span コンテナー内で Hyperlink を使用する場合は、 属性を Span に適用xml:space="preserve"
して、Hyperlink と他の要素の間に空白を保持します。
URI に移動
ハイパーリンクを使用して 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 ではないので、 Tapped、 PointerPressed などの UI 要素入力イベントのセットはありません。 代わりに、Hyperlink には独自の Click イベントと、 NavigateUri として指定された UNIFORM Resource Identifier (URI) を読み込むシステムの暗黙的な動作があります。 システムは、Hyperlink アクションを呼び出す必要があるすべての入力アクションを処理し、応答で Click イベントを発生させます。
ハイパーリンクには、その Inlines コレクション内にあるコンテンツの制限があります。 具体的には、ハイパーリンクは、実行および別のハイパーリンクではないその他のスパン タイプのみ許可します。 InlineUIContainer を Hyperlink の Inlines コレクションに含めることはできません。 制限されたコンテンツを追加しようとすると、無効な引数の例外、または XAML 解析例外がスローされます。
ハイパーリンクとテーマまたはスタイルの動作
ハイパーリンクは コントロール から継承しないため、Style プロパティまたは Template がありません。 TextElement から継承されたプロパティ (Foreground や FontFamily など) を編集してハイパーリンクの外観を変更することはできますが、共通のスタイルやテンプレートを使用して変更を適用することはできません。 テンプレートを使う代わりに、一貫性を保つためにハイパーリンクのプロパティの値の一般的なリソースの使用を検討してください。 Hyperlink の一部のプロパティでは、システムによって提供される {ThemeResource} マークアップ拡張 値の既定値が使用されます。 これにより、ハイパーリンクの外観は、実行時にシステム テーマが変更されると、適切な方法で切り替わります。
ハイパーリンクの既定の色は、システムのアクセント カラーです。 Foreground プロパティを設定するとこれを上書きできます。
既定では、ハイパーリンクには下線が付きます。 この下線は、アクセシビリティ要件を満たすために役立つので重要です。 色覚に障碍があるユーザーは、ハイパーリンクとその他のテキストを区別するために下線を使用します。 UnderlineStyle プロパティを設定すると下線の表示を無効にすることができます。 下線を無効にする場合は、ハイパーリンクを他のテキスト ( FontWeight や FontStyle など) と区別するために、他の種類の書式設定の違いを追加することを検討する必要があります。
コンストラクター
Hyperlink() |
Hyperlink クラスの新しいインスタンスを初期化します。 |
プロパティ
AccessKey |
この要素のアクセス キーを取得または設定します。 (継承元 TextElement) |
AccessKeyScopeOwner |
ソース要素のビジュアル ツリーにない場合でも、この要素のアクセス キー スコープを提供するソース要素を取得または設定します。 (継承元 TextElement) |
AllowFocusOnInteraction |
ユーザーが操作するときに要素が自動的にフォーカスを取得するかどうかを示す値を取得または設定します。 (継承元 TextElement) |
CharacterSpacing |
em の 1/1000 単位の文字間の均一な間隔を取得または設定します。 (継承元 TextElement) |
ContentEnd |
要素内のコンテンツの末尾を表す TextPointer を取得します。 (継承元 TextElement) |
ContentStart |
要素内のコンテンツの開始位置を表す TextPointer を取得します。 (継承元 TextElement) |
Dispatcher |
常に Windows アプリ SDK アプリで を返します |
DispatcherQueue |
このオブジェクトが |
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 依存関係プロパティを識別します。 |
メソッド
イベント
AccessKeyDisplayDismissed |
アクセス キー のビジュアルを非表示にする必要があることをコントロールに通知するためにアクセス キー シーケンスが完了したときに発生します。 (継承元 TextElement) |
AccessKeyDisplayRequested |
アクセス キー のビジュアルを表示する必要があることをコントロールに通知するためにアクセス キー シーケンスが開始されたときに発生します。 (継承元 TextElement) |
AccessKeyInvoked |
ユーザーがアクセス キー シーケンスを完了して、アクセス キー アクションを呼び出す必要があることを要素に通知するときに発生します。 (継承元 TextElement) |
Click |
ハイパーリンクがクリックされたときに発生します。 |
GotFocus |
ハイパーリンクがフォーカスを受け取ったときに発生します。 |
LostFocus |
ハイパーリンクがフォーカスを失ったときに発生します。 |