다음을 통해 공유


XBAP Hosting Silverlight 샘플

업데이트: 2008년 7월

이 샘플은 다음을 보여 줍니다.

  • XBAP(XAML 브라우저 응용 프로그램)에서 Sliverlight 기반 응용 프로그램을 호스팅하는 방법

  • 호스트 XBAP와 호스팅되는 Silverlight 기반 응용 프로그램 사이의 통신 방법

Download sample

XBAP에서 Silverlight 기반 응용 프로그램 호스팅

WebBrowser 컨트롤을 사용하여 XBAP에서 Silverlight 기반 응용 프로그램을 호스팅할 수 있습니다. XBAP Page의 콘텐츠에는 WebBrowser 컨트롤이 포함되며, 이 컨트롤의 소스 URI는 Silverlight 기반 응용 프로그램을 호스팅하는 HTML 페이지를 식별합니다. HTML 페이지에서는 Silverlight 플러그 인 컨트롤을 사용하여 Silverlight 기반 응용 프로그램을 호스팅합니다.

다음 이미지에서는 XBAP에서 Silverlight 기반 응용 프로그램을 호스팅하기 위한 상위 수준 아키텍처를 보여 줍니다.

Silverlight 응용 프로그램을 호스팅하는 WPF 응용 프로그램

XBAP에서 Silverlight 기반 응용 프로그램으로의 통신

호스트 XBAP에서는 Silverlight 기반 응용 프로그램을 호스팅하는 HTML 페이지에 구현된 스크립트 메서드를 통해 호스팅되는 Silverlight 기반 응용 프로그램과 통신할 수 있습니다. XBAP에서는 InvokeScript 메서드를 사용하여 스크립트 메서드를 호출합니다. 그러면 스크립트 메서드는 스크립트 가능한 개체에 구현된 메서드를 호출합니다. 스크립트 가능한 개체는 Silverlight 기반 응용 프로그램에서 노출되고 Silverlight 플러그 인 컨트롤의 Content 속성에서 스크립팅할 수 있습니다.

다음 그림에서는 XBAP에서 Silverlight 기반 응용 프로그램을 호스팅하기 위한 상위 수준 아키텍처 및 호스트 XBAP에서 호스팅되는 Silverlight 기반 응용 프로그램으로 메서드 호출을 전파하는 데 사용되는 주요 기술을 보여 줍니다.

Silverlight와의 WPF 상호 운용

WebBrowser 컨트롤을 사용하여 스크립트 메서드를 호출하려면 WebBrowser Control 샘플을 참조하십시오. 스크립트 가능한 개체를 노출하는 Silverlight 기반 응용 프로그램을 구현하는 데 대한 자세한 내용은 Walkthrough: Calling Managed Code from JavaScript를 참조하십시오. Silverlight 기반 응용 프로그램 개발에 대한 소개를 보려면 Getting Started with Silverlight를 참조하십시오.

Silverlight 기반 응용 프로그램에서 XBAP로의 통신

Silverlight 기반 응용 프로그램에서는 Silverlight 기반 응용 프로그램을 호스팅하는 HTML 페이지에 구현된 스크립트 메서드를 통해 호스트 XBAP와 통신할 수 있습니다. Silverlight 기반 응용 프로그램은 Silverlight System.Windows.Browser 네임스페이스에서 HtmlWindow 클래스의 Invoke 메서드를 사용하여 스크립트 메서드를 호출합니다. Silverlight 기반 응용 프로그램에서는 System.Windows.Browser 네임스페이스에 있는 HtmlPage 클래스의 Window 속성에서 HtmlWindow 클래스로 표현되는 창에 대한 참조를 가져옵니다. 그러면 스크립트 메서드는 스크립트 가능한 개체에 구현된 메서드를 호출합니다. 스크립트 가능한 개체는 ObjectForScripting 속성을 사용하여 XBAP에서 노출되고, 호스트 브라우저에서 노출된 window 개체의 external 속성에서 스크립팅할 수 있습니다.

다음 그림에서는 XBAP에서 Silverlight 기반 응용 프로그램을 호스팅하기 위한 상위 수준 아키텍처 및 호스팅되는 Silverlight 기반 응용 프로그램에서 호스트 XBAP로 메서드 호출을 전파하는 데 사용되는 주요 기술을 보여 줍니다.

WPF와의 Silverlight 상호 운용

Silverlight 기반 응용 프로그램에서 스크립트 메서드를 호출하려면 Walkthrough: Calling JavaScript from Managed Code를 참조하십시오. XBAP에서 스크립트 가능한 개체를 노출하는 데 대한 자세한 내용은 WebBrowser Control 샘플ObjectForScripting을 참조하십시오.

샘플 구성

이 샘플은 솔루션 하나(XBAPHostingSilverlightSample)와 다음의 프로젝트 두 개로 구성됩니다.

  1. Silverlight 기반 응용 프로그램을 호스팅하는 XBAP 프로젝트(WPFBrowserApplication)

  2. Silverlight 기반 응용 프로그램 프로젝트(SilverlightApplication)

SilverlightApplication은 WPFBrowserApplication이 빌드된 이후에 빌드되며, 생성된 Silverlight 기반 응용 프로그램 silverlightspplication.xap를 WPFBrowserApplication 프로젝트 출력 폴더 \bin\debug에 복사하는 빌드 후 단계를 포함합니다.

이 샘플은 다음 단계에 따라 localhost에서 WPFBrowserApplication 프로젝트 출력 폴더(\bin\debug)를 가리키는 가상 디렉터리에서 실행되도록 구성해야 합니다.

  1. 시작 | 관리 도구에서 인터넷 정보 서비스(IIS) 관리자를 선택합니다.

  2. 웹 사이트 | 기본 웹 사이트를 선택합니다.

  3. 기본 웹 사이트를 마우스 오른쪽 단추로 클릭하고 가상 디렉터리 추가를 선택한 후 다음을 수행합니다.

    1. 별칭을 "WPFBrowserApplication"으로 설정합니다.

    2. 실제 경로에 WPFBrowserApplication 프로젝트 출력 폴더를 설정합니다.

  4. 확인을 클릭하여 가상 디렉터리를 만듭니다.

샘플 실행

샘플을 실행하려면 다음 URL로 이동하십시오.

https://localhost/WPFBrowserApplication/WPFBrowserApplication.xbap

최선의 구현 방법

이 샘플에서는 Windows Presentation Foundation의 특정 기능에 대해 설명하므로 최선의 응용 프로그램 개발 방법을 따르지 않습니다. WPF(Windows Presentation Foundation) 및 Microsoft .NET Framework 응용 프로그램 개발을 위한 최선의 방법에 대한 자세한 내용은 다음에서 적절한 항목을 참조하십시오.

내게 필요한 옵션 - 액세스 가능성에 대한 유용한 정보

지역화 - WPF 전역화 및 지역화 개요

성능 - WPF 응용 프로그램 성능 최적화

보안 - Windows Presentation Foundation 보안

샘플 빌드

  • Windows SDK(소프트웨어 개발 키트)를 설치하고 빌드 환경 명령 창을 엽니다. 시작 메뉴에서 모든 프로그램, Microsoft Windows SDK를 차례로 가리킨 다음 CMD 셸을 클릭합니다.

  • SDK(소프트웨어 개발 키트) 설명서 등에서 샘플을 하드 디스크 드라이브로 다운로드합니다.

  • 빌드 환경 명령 창에서 샘플을 빌드하려면 샘플의 소스 디렉터리로 이동합니다. 명령 프롬프트에 MSBUILD를 입력합니다.

  • Microsoft Visual Studio에서 샘플을 빌드하려면 샘플 솔루션이나 프로젝트 파일을 로드한 다음 Ctrl+Shift+B를 누릅니다.

샘플 실행

  • 빌드 환경 명령 창에서 컴파일된 샘플을 실행하려면 샘플 소스 코드 폴더 아래에 있는 Bin\Debug 또는 Bin\Release 폴더의 .exe 파일을 실행합니다.

  • Visual Studio에서 디버깅 기능을 사용하여 컴파일된 샘플을 실행하려면 F5 키를 누릅니다.

참고 항목

작업

WebBrowser Control 샘플

개념

탐색 개요

구조적 탐색 개요

참조

WebBrowser

기타 리소스

Getting Started with Silverlight

Walkthrough: Calling Managed Code from JavaScript

변경 기록

날짜

변경 내용

이유

2008년 7월

샘플이 추가되었습니다.

SP1 기능 변경