프로그래밍/SilverLight 2010. 1. 4. 14:47

플래시에서 사용하는 FlashVars와 같이 실버라이트에서는 InitParams를 제공한다.
InitParams를 사용하는 방법과 넘겨받은 값으로 초기화 하는 방법과 
실버라이트를 사용하는 페이지의 QueryString 사용에 대해서 알아보도록 하겠다.


1. InitParams를 사용하기
   ※ 웹 페이지에서 실버라이트를 호출할때 InitParams를 설정해 주는 방법으로 2가지 방법이 이다.

   1.1 ASP.NET의 Silverlight Control 사용
<asp:Silverlight runat="server" Source="~/ClientBin/Sample.xap" Version="2.0" Width="100%" Height="100%" InitParameters="DataSource=http://xxxxx.xxx" />

   1.2 Html의 Object 태그 사용
<div id="silverlightControlHost">
 <object data="data:application/x-silverlight," type="application/x-silverlight-2-b1" width="100%" height="100%">
  <param name="source" value="~/ClientBin/Sample.xap"/>
  <param name="onerror" value="onSilverlightError" />
  <param name="background" value="white" />
  <param name="initParams" value="DataSource=http://xxxxx.xxx" />
  <a href="http://go.microsoft.com/fwlink/?LinkID=108182" style="text-decoration: none;">
    <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
  </a>
 </object>
 <iframe style='visibility:hidden;height:0;width:0;border:0px'></iframe>
</div>

2. 실버라이트에서 InitParams 사용하기
   ※ InitParams를 활용하는 방법이 여러가지 있겠지만, 여기서는 InitParams값을 통으로 넘기도록 하겠다.

   1. App.xaml.cs 파일 수정 ( Silverlight 동작시 제일 처음 동작하는 부분 )
  private void Application_Startup(object sender, StartupEventArgs e)
  {
      // InitParams를 별도로 생성한 MainPage.xaml에 넘겨준다.
      this.RootVisual = new MainPage(e.InitParams);
  }

   2. MainPage.xaml.cs. 파일 수정
    // InitParams값을 받아 초기화 하는 생성자 함수 추가
    public MainPage(IDictionary<string, string> InitParams)
      : this()
    {
      this._initArguments = InitParams;
    }

3. 실버라이트를 사용하는 페이지의 QueryString 사용

ex ) xxx.aspx?DataSource=http://xxxxxxx 일때

// 현재 브라우저의 HTML 문서를 가져온다.

System.Windows.Browser.HtmlDocument doc = new System.Windows.Browser.HtmlDocument();

// QueryString값 중 DataSource를 취한다.
String DataSourceUrl = doc.QueryString["DataSource"];


이상 간단하게 실버라이트를 사용할때 페이지에서 값을 할당하는 법을 알아 보았다.

여기서 급 궁금해 지는 한가지!!
'실버라이트를 사용하는 스킬을 업하는 것이 플래시를 사용하는 스킬업하는 것보다
개발자 커리어에 좋을까?'

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST