2011-05-09 4 views
4

브라우저가 SL 인 브라우저가 있습니다. 제가 원했던 것은 간단합니다 : 앱이 문서 (xls, doc, jpg ...)를 생성하고, 사용자가 버튼을 클릭 한 다음 선택적으로 대화 상자가 나타나서 괜찮은 부분을 클릭 한 다음 Excel, Word, 그림을 클릭하면됩니다. 뷰어 또는 SL 응용 프로그램이 만든 문서를 시작하고 여는 모든 것.silverlight open document

내가 지금까지 본 것은 불완전한 해결책입니다.

대부분의 사람들은 SaveFileDialog를 팝업으로 제안합니다. 먼저 저장 후 사용자는 먼저 파일을 열어 파일을 열어야하며 일반적으로 파일을 보지 않고 저장합니다. 나쁜 UX.

다른 가능한 솔루션은 파일을 격리 된 저장소에 저장하고 COM interop을 사용하여 Excel을 시작하는 것입니다. 하지만 브라우저 호스트에는 COM interop이 없다고 생각합니다. COM interop은 플랫폼에 매우 의존적입니다. 내 SL 애플 리케이션도 달빛과 함께 작동해야합니다.

다른 사람들은 브라우저를 SL에서 문서의 HTTP 위치로 리디렉션 할 것을 제안합니다. 이 작업을 할 수 있지만 내 문제는 실제로 해결되지 않습니다. 그 이유는 서버에 문서를 어떻게 든 배치해야하기 때문입니다.

누구나 진짜 해결책을 알고 있습니까? 여기서 '아니오'는 대답으로 받아 들일 수 있습니다.

답변

3

확실한 대답은 다음과 같습니다. 브라우저 호스트에서 정말로 원하는 것은 Silverlight 플러그인에서 기대하는 보안을 위반하는 것입니다.

곧 출시 될 Silverlight 5가 시스템 관리자가 그룹 정책을 사용하여 인바운드를 실행하는 특정 xaps에 신뢰할 수있는 동작을 부여 할 수 있도록 허용하지만이 솔루션이 달빛으로 확장되는지 여부는 추측됩니다 .

당신이 고려해야 할 가치가있는 질문 중 일부는 클라이언트에서 실행되는 Silverlight 응용 프로그램이 문서를 생성하는 이유는 무엇입니까? 확장 성을위한 이유일까요? 왜 문서 생성 코드를 서버로 옮기지 않는가?

0

파일은 서버 측에 저장되는 경우, 우리는 아래의 코드

string uri = HtmlPage.Document.DocumentUri.ToString(); 
uri = uri.Remove(uri.LastIndexOf('#'), uri.Length - uri.LastIndexOf('#')); 
uri=uri.Remove(uri.LastIndexOf('/')); 
System.Windows.Browser.HtmlPage.PopupWindow(new Uri(uri + "/FolderName/filenamewithextension"), "_blank", null); 
을 사용하여 해당 파일을 열 수 있습니다