ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MSDN] Silverlight2 App를 Silverlight3 App로 변경하기
    Silverlight 2009. 4. 26. 08:56

    이 글은 Silverlight runtime과 Silverlight tools가 Silverlight2에서 Silverlight3(Beta)로 변경되면서, 기존의 Silverlight2 기반의 어플리케이션이 수정되어야하는 부분을 설명하고 있습니다. 즉, 이 글은 Silverlight 3의 새로운 특징을 설명하는 것이 주 목적이 아닙니다. 

    다음 section들을 설명합니다.

    • OpenFileDialog.ShowDialog – OpenFileDialog는 보안을 위해 User가 발생시키는 이벤트에 대해서만 동작합니다.
    • HyperlinkButton – Silverlight의 Hyperlink 버튼은 전체 브라우저의 URL를 변경하지 않고, Silverlight plug-in이 호스팅 중인 IFrame의 URL만 변경합니다.
    • Popup – Poupup Control에서 발생한 마우스 이벤트의 GetPosition이 제대로 작동하지 않던 버그가 수정되었습니다.
    • ReadOnlyObservableCollection – ReadOnlyObservableCollection class가 포함된 Assembly가 System.Windows.Controls.Data.dll에서 System.Windows.dll로 변경되었습니다.


    OpenFileDialog.ShowDialog

    What is affected: Silverlight 3 beta runtime을 사용하는 모든 어플리케이션

    보안상의 이유로, OpenFileDialog의 ShowDialog 메서드는 유저가 입력을 통해 발생시킨 이벤트(키보드나 마우스) 또는 유저가 버튼을 누르거나 Checkbox를 체크했을 때만 실행되게 됩니다.


    HyperlinkButton

    What is affected: Silverlight 3로 재컴파일된 Silverlight 2 어플리케이션

    Silverlight 2의 HyperlinkButton은 Browser마다 약간씩 다르게 동작했었습니다. 예를 들어, IE에서는 HyperlinkButton을 클릭하면 전체 브라우저의 URL을 변경하였고, 기타 다른 브라우저에서는 Silverlight Plug-in이 포함된 IFrame의 URL만 변경하였습니다.

    Silverlight 3에서는 브라우저 종류에 관계 없이 Silverlight Plug-in이 포함된 IFrame의 URL만 변경하도록 수정되었습니다.


    Popup

    What is affected: Silverlight 3로 재컴파일된 Silverlight 2 어플리케이션

    Popup Control안에 존재하는 Element를 마우스 좌표를 구하는 GetPosition 메서드의 인자로 사용할 경우 제대로 좌표가 안나오는 문제 수정
     

     XAML Code

     <Popup>
        <Border Name="border" MouseLeftButtonDown="OnMouseLeftButtonDown"/>
    </Popup>


     C# Code

    void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        ... e.GetPosition(border) ...
    }

    Silvelight 2에서는 Popup 안에 포함되어 있는 border를 GetPosition 메서드의 인자로 사용하더라도 Border가 기준이 되는 좌표가 나오지 않고 Silverlight plug-in 전체 화면을 기준으로 좌표가 구해졌습니다. Silverlight 3에서는 이러한 버그를 수정해서 border를 기준으로 정확한 좌표가 나옵니다.  


    ReadOnlyObservableCollection

    What is affected: Silverlight 3로 재컴파일된 Silverlight 2 어플리케이션

    ReadOnlyObservableCollection이 포함된 Assembly가 System.Windows.Controls.Data.dll에서 System.Windows.dll로 옮겨졌습니다. 그리고 다운로드 사이즈를 줄이기 위해, 사용 빈도가 낮은 메서드 들을 삭제했습니다.  

    Note
    기존의 ReadOnlyObservableCollection을 사용한 Silverlight 2 어플리케이션은 XAP에 System.Windows.Controls.Data.dll을 포함하고 있습니다. Silvelight 3 런타임은 XAP안에 System.Windows.Controls.Data.dll이 포함되어 있다면 이를 참조해 ReadOnlyObservableCollection 클래스를 사용하기 때문에 현재 Silverlight 3에서 삭제된 메서드들도 문제 없이 사용 가능합니다.


    원본 글 주소
     http://msdn.microsoft.com/en-us/library/cc645049(VS.96).aspx

Designed by Tistory.