2009-11-13 2 views
1

저는 "아니오"라고 대답했지만 확실하지 않았습니다. 이상적으로, Silverlight 응용 프로그램에서 추가 창을 볼 수있게하고 싶습니다. ChildWindows가 호스트 Silverlight 윈도우의 경계에 국한된다는 의미는 아니지만 작업 표시 줄에 나타날 수있는 진정한 별도의 창입니다. WPF에서는 System.Windows.Window와 해당 속성 (예 : ShowInTaskbar)을 사용합니다. 그러나 Silverlight에서는 사용할 수없는 클래스입니다.Silverlight 응용 프로그램에서 정말로 별도의 창을 생성 할 수 있습니까?

연락처 또는 약속의 전체 세부 정보를 열 때 Outlook과 매우 유사하게, 내 응용 프로그램이 별도의 창을 생성하는 것이 이상적입니다. 별도의 브라우저 창에서 Silverlight 응용 프로그램의 별도보기를 호스팅하는 것을 원하지 않습니다 (이론적으로 DOM 수준의 JavaScript 간 대화 상자 간 통신을 통해 작동 할 수 있음).

이것은 Silverlight의 계산 된 제한 사항 중 하나입니다. 하지만 포기하기 전에 다른 사람으로부터 듣고 싶습니다. 아니요, 별도의 최상위 창을 생성 할 수 없습니다.

답변

1

아니요, 별도의 최상위 창을 생성 할 수 없습니다.

가장 좋은 방법은 HyperlinkButton을 사용하여 다른 Silverlight 플러그인이 포함 된 새 브라우저 창을 여는 것입니다.

+0

내 의심을 확인해 주셔서 감사합니다. – Trinition

3

동일한 XAP를 포함하는 다른 브라우저 창을 열고 (JavaScript 호출을 통해) 시작할 때 Silverlight 응용 프로그램이 표시해야하는보기를 결정할 수 있습니다. 이 새로운 하위 창과 기본 창 사이의 통신은 DOM 수준의 JavaScript가 아닌 Local Messaging을 통해 이루어지며 매우 사용하기 쉽습니다.

+0

그건 흥미 롭 네요. 감사! – Trinition

0

아직 시도 할 이유가 없지만 기본 응용 프로그램이 호스팅되는 브라우저에서 추가 Silverlight 컨트롤을 만들 수 있습니다.

Microsoft는 Silverlight.js 라이브러리를 사용하여 JavaScript를 사용하여 Silverlight 컨트롤을 HTML DOM에 바로 추가 할 수 있습니다.

HTML 문서에서 창에 대한 DIV를 플로팅하거나 Jquery Tabs과 같은 간단한 탭 컨트롤을 사용할 수 있습니다. 동적으로 탭을 추가하는 것은 매우 쉽습니다.

이것은 아마도 "창"이 여러 개있는 경우에 가장 근접 할 것이며, 여전히 멋지고 현대적인 웹 앱처럼 느껴질 것입니다. 그래도 XAP 파일이 클 경우 특히 조심스럽게 성능 테스트를 해보겠습니다.

0

한 실버 라이트 애플리케이션 내에 별도의 창을 생성 할 수 없다고 생각합니다.

예를 들어 프리즘을 사용하여 여러 개의 작은 xap 파일에서 응용 프로그램을 구성 할 수 있습니다. 이렇게하면 초기 다운로드가 줄어들고 다른 브라우저 창에 부품을 표시 할 수 있습니다.

별도의 브라우저 창 표시는 코드에서 매우 쉽습니다. System.Windows.Browser을보십시오. 결국 새로운 창을 여는 데 필요한 것은 다음과 같습니다.

HtmlPage.PopupWindow(new Uri("http://localhost/Email.xap?showmessage=1234"), 
        "_blanc", new HtmlPopupWindowOptions()); 
관련 문제