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 では、コンテンツ要素の作成は暗黙的であるため、ハイパーリンクにリンク テキストを直接追加できます。
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 要素は、ハイパーリンクの周囲の空白を保持するために使用されます。
コードでは、各テキスト要素 ( 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);
注釈
ハイパーリンク と HyperlinkButton
XAML アプリにハイパーリンクを追加するには、2 つの方法があります。 ハイパーリンクと HyperlinkButton には、ユーザーが別のブラウザー アプリを使用して特定の URI を起動できるようにするのと同様の目的があります。+ テキスト コントロール内でインラインハイパーリンク テキスト要素を使用します。 Hyperlink 要素は他のテキスト要素と共に流れ、任意の InlineCollection で使用できます。
- アプリ内の任意の場所で HyperlinkButton コントロールを使用します。 HyperlinkButton は、ボタンを使用する任意の場所で使用できる特殊な Button コントロールです。 詳細については、「 HyperlinkButton」を参照してください。
インライン ハイパーリンク
Hyperlink 要素を使用して、 TextBlock または RichTextBlock のコンテンツに対話型テキストを追加します。 ハイパーリンクは Inline クラスから派生しているため、 InlineCollection を Inlines プロパティとして持つ任意のコンテナー内に配置できます ( TextBlock、 Paragraph、 Span など)。
Tip
XAML の他のテキスト要素と 共に Span コンテナー内でハイパーリンクを使用する場合は、ハイパーリンクと他の要素の間に空白を保持するために、 xml:space="preserve" 属性を Span に適用します。
URI に移動
ハイパーリンクを使用して 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 プロパティを設定して、下線を無効にすることができます。 下線を無効にする場合は、ハイパーリンクと他のテキスト ( 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 |
この要素のコンテンツに適用する ブラシ を取得または設定します。 (継承元 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 依存関係プロパティを識別します。 |
メソッド
イベント
| 名前 | 説明 |
|---|---|
| AccessKeyDisplayDismissed |
アクセス キー のビジュアルを非表示にする必要があることをコントロールに通知するためにアクセス キー シーケンスが完了したときに発生します。 (継承元 TextElement) |
| AccessKeyDisplayRequested |
アクセス キー のビジュアルを表示する必要があることをコントロールに通知するためにアクセス キー シーケンスが開始されたときに発生します。 (継承元 TextElement) |
| AccessKeyInvoked |
ユーザーがアクセス キー シーケンスを完了して、アクセス キー アクションを呼び出す必要があることを要素に通知したときに発生します。 (継承元 TextElement) |
| Click |
ハイパーリンクがクリックされたときに発生します。 |
| GotFocus |
ハイパーリンクがフォーカスを受け取ったときに発生します。 |
| LostFocus |
ハイパーリンクがフォーカスを失ったときに発生します。 |