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 앱에 하이퍼링크를 추가할 수 있는 두 가지 방법이 있습니다. Hyperlink 및 HyperlinkButton 은 사용자가 별도의 브라우저 앱을 사용하여 특정 URI를 시작할 수 있도록 하는 것과 비슷한 목적을 가지고 있습니다.+ 텍스트 컨트롤 내에서 인라인 하이퍼링크 텍스트 요소를 사용합니다. Hyperlink 요소는 다른 텍스트 요소와 함께 흐르며 모든 InlineCollection에서 사용할 수 있습니다.
- 앱의 아무 곳이나 HyperlinkButton 컨트롤을 사용합니다. HyperlinkButton은 단추를 사용하는 모든 곳에서 사용할 수 있는 특수 단추 컨트롤입니다. 자세한 내용은 HyperlinkButton을 참조하세요.
인라인 하이퍼링크
Hyperlink 요소를 사용하여 TextBlock 또는 RichTextBlock의 콘텐츠에 대화형 텍스트를 추가합니다. 하이퍼링크는 Inline 클래스에서 파생되므로 InlineCollection이 있는 컨테이너 내에 TextBlock, Paragraph 또는 Span과 같은 Inlines 속성으로 배치할 수 있습니다.
팁
XAML의 다른 텍스트 요소와 함께 Span 컨테이너 내에서 하이퍼링크를 사용하는 경우 특성을 Span에 적용 xml:space="preserve"
하여 하이퍼링크와 다른 요소 사이의 공백을 유지합니다.
URI로 이동
하이퍼링크를 사용하여 URI(Uniform Resource Identifier)로 이동하려면 NavigateUri 속성을 설정합니다. 사용자가 Hyperlink 요소를 클릭하거나 탭하면 지정된 URI(Uniform Resource Identifier)가 기본 브라우저에서 열립니다. 기본 브라우저는 앱과는 별도의 프로세스에서 실행됩니다.
팁
http: 또는 https: 체계를 사용하지 않아도 됩니다. 브라우저에서 로드하기 적합한 위치에 리소스 콘텐츠가 있으면 ms-appx:, ms-appdata: 또는 ms-resources:와 같은 체계를 사용할 수 있습니다. 그러나 file: 체계는 특별히 차단됩니다. 자세한 내용은 URI 체계를 참조하세요.
사용자가 하이퍼링크를 클릭하면 NavigateUri 속성 값이 URI(Uniform Resource Identifier) 형식 및 스키마에 대한 시스템 처리기에 전달됩니다. 그런 다음, 시스템은 NavigateUri에 제공된 URI(Uniform Resource Identifier)의 체계에 등록된 앱을 시작합니다.
하이퍼링크가 기본 웹 브라우저에서 콘텐츠를 로드하지 않고 브라우저를 표시하지 않으려면 NavigateUri에 대한 값을 설정하지 마세요. 대신 Click 이벤트를 처리하고 원하는 작업을 수행하는 코드를 작성합니다.
Click 이벤트 처리
앱 내 탐색과 같이 브라우저에서 URI(Uniform Resource Identifier)를 시작하는 것 이외의 작업에 는 Click 이벤트를 사용합니다. 예를 들어 브라우저를 여는 대신 새 앱 페이지를 로드하려면 Click 이벤트 처리기 내에서 Frame.Navigate 메서드를 호출하여 새 앱 페이지로 이동합니다. 외부의 절대 URI(Uniform Resource Identifier)가 앱에도 있는 WebView2 컨트롤 내에서 로드되도록 하려면 Click 처리기 논리의 일부로 WebView2.NavigateToString(System.String)을 호출합니다.
일반적으로 Click 이벤트를 처리하지 않고 NavigateUri 값을 지정하는 것은 Hyperlink 요소를 사용하는 두 가지 방법을 나타내기 때문에 처리하지 않습니다. 기본 브라우저에서 URI를 열려고 하고 NavigateUri에 대한 값을 지정한 경우 Click 이벤트를 처리하지 마세요. 반대로 Click 이벤트를 처리하는 경우 NavigateUri를 지정하지 마세요.
Click 이벤트 처리기 내에서 기본 브라우저가 NavigateUri에 지정된 유효한 대상을 로드하지 못하도록 할 수 있는 작업은 없습니다. 해당 작업은 하이퍼링크가 활성화되고 Click 이벤트 처리기 내에서 취소할 수 없을 때 자동으로(비동기적으로) 수행됩니다.
하이퍼링크 제한 사항
하이퍼링크는 UIElement가 아니므로 Tapped, PointerPressed 등과 같은 UI 요소 입력 이벤트 집합이 없습니다. 대신 Hyperlink에는 자체 Click 이벤트와 NavigateUri로 지정된 URI(Uniform Resource Identifier)를 로드하는 시스템의 암시적 동작이 있습니다. 시스템은 하이퍼링크 작업을 호출해야 하는 모든 입력 작업을 처리하고 응답에서 Click 이벤트를 발생합니다.
Hyperlink는 해당 Inlines 컬렉션에 존재할 수 있는 콘텐츠를 제한합니다. 특히 Hyperlink는 다른 Hyperlink가 없는 Run 및 기타 Span 형식만 허용합니다. InlineUIContainer 는 하이퍼링크의 인라인 컬렉션에 있을 수 없습니다. 제한된 콘텐츠를 추가하려고 하면 잘못된 인수 예외 또는 XAML 구문 분석 예외가 발생합니다.
하이퍼링크와 테마/스타일 동작
Hyperlink는 Control에서 상속되지 않으므로 Style 속성 또는 Template이 없습니다. 전경 또는 FontFamily와 같은 TextElement에서 상속된 속성을 편집하여 하이퍼링크의 모양을 변경할 수 있지만 일반적인 스타일이나 템플릿을 사용하여 변경 내용을 적용할 수는 없습니다. 템플릿을 사용하는 대신 Hyperlink 속성 값에 대한 공통 리소스를 사용하여 일관성을 제공하는 것이 좋습니다. Hyperlink의 일부 속성은 시스템에서 제공하는 {ThemeResource} 태그 확장 값의 기본값을 사용합니다. 이렇게 하면 사용자가 런타임 시 시스템 테마를 변경할 때 하이퍼링크 모양을 적절한 방법으로 전환할 수 있습니다.
하이퍼링크의 기본 색상은 시스템의 테마 컬러입니다. Foreground 속성에서 이를 재정의할 수 있습니다.
기본적으로 하이퍼링크에는 밑줄이 표시됩니다. 이 밑줄은 접근성 요구 사항을 충족하는 데 도움이 되므로 중요합니다. 색맹인 사용자는 밑줄을 사용하여 하이퍼링크 및 기타 텍스트를 구분합니다. UnderlineStyle 속성에서 밑줄을 사용하지 않도록 설정할 수 있습니다. 밑줄을 사용하지 않도록 설정하면 다른 형식의 서식 차이를 추가하여 FontWeight 또는 FontStyle과 같은 다른 텍스트와 하이퍼링크를 구분하는 것이 좋습니다.
생성자
Hyperlink() |
Hyperlink 클래스의 새 instance 초기화합니다. |
속성
AccessKey |
이 요소의 액세스 키를 가져오거나 설정합니다. (다음에서 상속됨 TextElement) |
AccessKeyScopeOwner |
원본 요소의 시각적 트리에 없는 경우에도 이 요소에 대한 액세스 키 scope 제공하는 원본 요소를 가져오거나 설정합니다. (다음에서 상속됨 TextElement) |
AllowFocusOnInteraction |
사용자가 상호 작용할 때 요소가 자동으로 포커스를 받는지 여부를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 TextElement) |
CharacterSpacing |
문자 사이의 균일한 간격을 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 |
요소가 자체 액세스 키 scope 정의하는지 여부를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 TextElement) |
IsTabStop |
하이퍼링크가 탭 탐색에 포함되어 있는지 여부를 나타내는 값을 가져오거나 설정합니다. |
IsTabStopProperty |
IsTabStop 종속성 속성을 식별합니다. |
IsTextScaleFactorEnabled |
시스템 텍스트 크기 설정을 반영하기 위해 자동 텍스트 확대를 사용할지 여부를 가져오거나 설정합니다. (다음에서 상속됨 TextElement) |
KeyTipHorizontalOffset |
키 설명이 텍스트 요소와 관련하여 배치되는 왼쪽 또는 오른쪽의 정도를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 TextElement) |
KeyTipPlacementMode |
Text 요소와 관련하여 KeyTip이 배치되는 위치를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 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(Directional Pad)를 누를 때 포커스를 받는 개체를 가져오거나 설정합니다. |
XYFocusDownNavigationStrategy |
아래쪽 탐색의 대상 요소를 결정하는 데 사용되는 전략을 지정하는 값을 가져오거나 설정합니다. |
XYFocusDownNavigationStrategyProperty |
XYFocusDownNavigationStrategy 종속성 속성을 식별합니다. |
XYFocusDownProperty |
XYFocusDown 종속성 속성을 식별합니다. |
XYFocusLeft |
사용자가 DPAD(Directional Pad)를 왼쪽으로 누를 때 포커스를 받는 개체를 가져오거나 설정합니다. |
XYFocusLeftNavigationStrategy |
왼쪽 탐색의 대상 요소를 결정하는 데 사용되는 전략을 지정하는 값을 가져오거나 설정합니다. |
XYFocusLeftNavigationStrategyProperty |
XYFocusLeftNavigationStrategy 종속성 속성을 식별합니다. |
XYFocusLeftProperty |
XYFocusLeft 종속성 속성을 식별합니다. |
XYFocusRight |
사용자가 DPAD(Directional Pad)를 오른쪽으로 누를 때 포커스를 받는 개체를 가져오거나 설정합니다. |
XYFocusRightNavigationStrategy |
오른쪽 탐색의 대상 요소를 결정하는 데 사용되는 전략을 지정하는 값을 가져오거나 설정합니다. |
XYFocusRightNavigationStrategyProperty |
XYFocusRightNavigationStrategy 종속성 속성을 식별합니다. |
XYFocusRightProperty |
XYFocusRight 종속성 속성을 식별합니다. |
XYFocusUp |
사용자가 DPAD(Directional Pad)를 누를 때 포커스를 받는 개체를 가져오거나 설정합니다. |
XYFocusUpNavigationStrategy |
위쪽 탐색의 대상 요소를 결정하는 데 사용되는 전략을 지정하는 값을 가져오거나 설정합니다. |
XYFocusUpNavigationStrategyProperty |
XYFocusUpNavigationStrategy 종속성 속성을 식별합니다. |
XYFocusUpProperty |
XYFocusUp 종속성 속성을 식별합니다. |
메서드
이벤트
AccessKeyDisplayDismissed |
액세스 키 시퀀스가 완료되면 액세스 키 시각적 개체를 숨겨야 한다는 것을 컨트롤에 알릴 때 발생합니다. (다음에서 상속됨 TextElement) |
AccessKeyDisplayRequested |
액세스 키 시퀀스가 액세스 키 시각적 개체를 표시해야 한다는 것을 컨트롤에 알리기 시작할 때 발생합니다. (다음에서 상속됨 TextElement) |
AccessKeyInvoked |
사용자가 액세스 키 시퀀스를 완료하여 요소에 액세스 키 동작을 호출해야 한다고 알릴 때 발생합니다. (다음에서 상속됨 TextElement) |
Click |
하이퍼링크를 클릭할 때 발생합니다. |
GotFocus |
하이퍼링크가 포커스를 받을 때 발생합니다. |
LostFocus |
하이퍼링크가 포커스를 잃을 때 발생합니다. |