=================================================================================================================
이번 Tip of The Day의 주제는 'How To Dynamically Load and Display SilverLight Applications'라는 주제입니다.
어디까지나. '입문'을 위한 팁입니다. 많이 아시는 내용일 수도 있겠는데. 정리차원에서. 시작합니다.. ^^
지금까지 우리는 정적(Static)의 실버라이트 기본 템플릿을 이용했지요.
<body style="height:100%;margin:0;">
<form id="form1" runat="server" style="height:100%;">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<div style="height:100%;">
<asp:Silverlight ID="Xaml1" runat="server" Source="~/ClientBin/SilverlightApplication29.xap" MinimumVersion="2.0.30523" Width="100%" Height="100%" />
</div>
</form>
</body>
이제 실버라이트 xap파일을 두어개 정도 준비해두고 상황에 맞게 띄우는 동작을 볼 예정입니다. 이 동작을 보기 위해
일반 asp 버튼 2개와, 한개의 Panel을 만들어줍니다. 만약 첫번째 버튼이 눌리면 첫번째 xap이, 두번째 버튼이 눌리면
두번째 xap이 나오겠지요.
그럼 구현방법을 보도록 하겠습니다.
1. 일단 새 Silverlight Application을 생성합니다.
2. 솔루션 익스플로러에서 Add->New Project->Silverlight Application으로 새 어플리케이션을 지정해준 후에, 미리 만들
어둔 웹사이트에 링크시킵니다.
(주:이 방법이 아니더라도, xap파일만 있으면 되는것이니까.. 따로 열어서 두개의 xap파일을 생성하고, ClientBin에 넣어
두는 방식으로 하셔도 무방합니다. ^^)
3. default.aspx를 연 다음에 (아무것도 코딩이 안되어있죠), ScriptManager를 넣고, Panel 컨트롤, 버튼컨트롤 2개를
넣습니다.
4. 그리고 이 default.aspx를 Set as Start Page로, 시작페이지로 설정해둡니다. 그럼 아마 이와 비슷할꺼예요.
<body style="height: 100%; margin: 0;">
<form id="form1" runat="server" style="height: 100%;">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:Panel ID="SilverlightApp" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Show First App" OnClick="OnShowFirstApp"
OnCommand="Button1_Command" />
<asp:Button ID="Button2" runat="server" Text="Show Second App" OnClick="OnShowSecondApp"
OnCommand="Button1_Command" />
</form>
</body>
5. 보시면 버튼에 각각 이벤트 함수를 설정해두었죠. 이제 비하인드 코드(aspx.cs)에서 다음을 작성합니다.
protected void OnShowFirstApp(object sender, EventArgs e)
{
System.Web.UI.SilverlightControls.Silverlight sl =
new System.Web.UI.SilverlightControls.Silverlight();
<?xml:namespace prefix = o />
sl.Source = "ClientBin/SilverlightApplication1.xap";
sl.ID = "SilverlightApp1";
sl.Width = new Unit(800);
sl.Height = new Unit(600);
sl.Windowless = true;
SilverlightApp.Controls.Add(sl);
}
protected void OnShowSecondApp(object sender, EventArgs e)
{
System.Web.UI.SilverlightControls.Silverlight sl = new System.Web.UI.SilverlightControls.Silverlight();
sl.Source = "ClientBin/SilverlightApplication2.xap";
sl.ID = "SilverlightApp2";
sl.Width = new Unit(800);
sl.Height = new Unit(600);
sl.Windowless = true;
SilverlightApp.Controls.Add(sl);
}
저 System.Web.Ui.SilverlightControls.Silverlight sl = ..... 이 부분은 전역으로 선언하는 방법도 괜찮을 것 같군요.
보시면, Source 해서 xap파일을 지정하고, ID 주고, 각종 속성을 설정한 것을 볼 수 있습니다 (Width, Height, Windowless 등)
[출처] 실버라이트 네이버 카페