2011. 10. 26. 17:17

엄밀이 말하면 실버라이트에서 html을 띄울수 없습니다.
실버라이트에서 IFrame과 같은 html을 별도로 사용하기위해선 Windowless모드를 사용하여야 합니다.
(참고 : 공도님의 블로그 - Window 모드와 Windowless 모드 )


,aspx파일에서 실버라이트를 불러올때 넣어주는 파라미터에 다음과 같이 추가 하면 됩니다.


이걸켜주면 시버라이트는 다른 HTML위로 올라가게 됩니다.(으잌?)



ㅎㅎㅎ

반농담이고요.
HTML이 위로 올라갑니다 ㅡ.-;;;
그러니 여전이 html문서와 유동적으로 구성할수는 없습니다 ㅜㅡ

이것까지는 좋은데 이렇게 하면 html코드가 .aspx에 들어가기 때문에 런타임에서 실버라이트가 컨트롤하는데 한계가 있습니다.
그래서 이것저것 자료를 뒤저보니.....

divelements 에서 재공하는 HtmlHost라는 것이 있습니다.
참고 : divelements - HtmlHost
(이것 말고도 비슷한게 몇개 있는데 이게 재일 가볍고 쓰기 편한것 같네요 ㅎㅎ)

참 좋은 툴입니다 ㅎㅎㅎㅎ

일단 다운로드를 받고 압축을 푼다음 참조추가를 해줍니다.


아름 답게 추가가된 툴

.xmal상에서 직접 추가하시려면 페이지 선언부분에

xmlns:divtools="clr-namespace:Divelements.SilverlightTools;assembly=Divelements.SilverlightTools" x:Class="SilverlightHTML.MainPage"


을 추가해주신후
<divtools:HtmlHost Name="htmlHost" SourceUri="http://daum.net" />

이렇게 사용하시면 됩니다.


원하는 내용이 딱!!!

이것을 비하인드 코드에서 제어 하려면
htmlHost.SourceUri = new Uri(http://daum.net);


이런식으로 사용이 가능합니다.

직접 html코드를 넣으려면

htmlHost.SourceHtml = "<div>여기는 html이랑께</div>";

이렇게 하시면 됩니다.

참암 쉽죠잉?
이렇게 툴형태로 쓰면 좋은점중에 하나가 레이아웃 위치를 마음대로 정할수 있다는 것입니다.

문제는 Windowless모드자체가 성능 저하의 주범이기 때문에 꼭필요한 경우가 아니라면 사용하지 마시길 바랍니다.