Silverlight 응용 프로그램에서 하이퍼링크 만들기
Microsoft Silverlight 1.0 응용 프로그램에서 하이퍼링크를 만드는 작업은 WPF(Windows Presentation Foundation) 응용 프로그램에서 하이퍼링크를 만드는 작업과 약간 다릅니다. Silverlight 1.0 응용 프로그램의 다른 대화형 기능처럼 이벤트 처리기 메서드를 만들어 사용자 액션에 응답한 다음 window 개체의 location 속성을 새 URL로 설정합니다.
Silverlight 1 응용 프로그램에서 하이퍼링크 만들기
Silverlight 1.0 프로젝트의 주 XAML 문서에서 도구 상자의 Canvas 컨트롤을 선택하고 아트보드에 캔버스 개체를 그립니다.
개체 및 타임라인에서 캔버스 개체를 마우스 오른쪽 단추로 클릭한 다음 이름 바꾸기를 선택합니다. 캔버스 개체의 새 이름을 입력합니다(예: MyHyperlink).
MyHyperlink 개체를 선택하고 속성 패널을 엽니다. 공용 속성에서 Cursor 속성을 Hand로 설정합니다. 사용자가 MyHyperlink 캔버스 개체 위로 포인터를 이동하면 포인터가 손 모양으로 변합니다.
MyHyperlink 개체를 두 번 클릭하여 활성화합니다. 캔버스 개체 주위에 활성화된 개체임을 나타내는 노란색 경계 상자가 나타납니다. 새 개체가 활성화된 개체의 자식 개체로 추가됩니다.
도구 상자에서 TextBlock 컨트롤을 선택한 다음 MyHyperlink 개체 안에 텍스트 블록 개체를 그립니다.
F2 키를 눌러 텍스트 편집 모드로 전환합니다. 텍스트 블록의 콘텐츠를 Link로 변경합니다. Esc 키를 눌러 텍스트 편집 모드를 종료합니다.
프로젝트 패널의 파일에서 XAML 문서의 코드 숨김 파일을 두 번 클릭합니다. 예를 들어 편집하고 있는 XAML 문서의 이름이 Page.xaml이면 Page.xaml.js 파일을 두 번 클릭합니다. 코드 숨김 파일이 JavaScript 편집기의 Expression Blend 2에 열립니다.
이벤트 처리기를 연결하는 예제 코드 줄은 이미 있으며 다음과 비슷합니다.
rootElement.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleMouseDown));
이 코드 줄 아래에 다음 코드를 추가합니다.
if (null != this.control.content.findName("MyHyperlink")) this.control.content.findName("MyHyperlink").addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleHyperlink));
이 코드에서 이름이 MyHyperlink인 개체가 있는지 테스트한 후 있으면 MouseLeftButtonDown 이벤트에 응답하는 handleHyperlink라는 이름의 이벤트 처리기 메서드를 추가합니다.
현재 코드 숨김 파일에는 이름이 handleMouseDown인 예제 이벤트 처리기 메서드가 이미 들어 있습니다. handleLoad 메서드의 끝에는 마지막 중괄호(}) 뒤에 쉼표(,)가 있지만 handleMouseDown 메서드의 마지막 중괄호 뒤에는 쉼표가 없습니다. handleMouseDown이 선언된 마지막 메서드이기 때문입니다. 새 메서드를 추가하는 경우 마지막을 제외한 다른 모든 메서드의 마지막 중괄호 뒤에 쉼표가 있는지 확인하십시오.
다음 이벤트 처리기 메서드를 추가합니다. handleMouseDown 이벤트 앞에 추가하는 것이 좋습니다.
handleHyperlink: function(sender, eventArgs) { window.location = "Http://www.microsoft.com"; },
이 메서드는 사용자가 MyHyperlink 캔버스 개체 안을 왼쪽 마우스 단추로 클릭할 때 응답하여 브라우저를 Http://www.microsoft.com 웹 사이트로 리디렉션합니다.
F5 키를 눌러 응용 프로그램을 테스트합니다. Link 텍스트를 클릭하여 리디렉션되는지 여부를 확인합니다.