이전 포스트에서 Orcas RC1에서는 2005와 달리 Image 엘리먼트의 Source 속성에 siteoforigin PackURI를 사용할 수 없다고 했는데요, Beta1에서는 디자인 타임에서는 여전히 siteoforigin에서 불러온 소스를 표시하지는 않지만 런타임에는 제대로 동작을 합니다.

------------------------------------------------------------------------
요약
Visual Studio Orcas RC1 및 Beta1에서 XAML의 Image 엘리먼트의 Source 속성에 siteoforigin authority를 사용한 PackURI를 사용하면 RC1에서는 디자인타임과 런타임 모두 해당 URI를 인식하지 못하고 Beta1에서는 디자인타임에만 표시되지 않습니다.

재현
1. Visual Studio Orcas RC1 또는 Beta1를 실행합니다.
2. File->New->Project 또는 Ctrl+Shift+N을 눌러 새 프로젝트 다이얼로그를 띄우고 Windows 카테고리에서 WPF Application을 선택하고 [OK]를 누릅니다.
3. 생성된 프로젝트 경로에 아무 이미지(여기서는 a.gif)를 복사해놓고 Window1.xaml을 다음과 같은 코드로 작성합니다.

XAML
<Window x:Class="WPFApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <Image Source="pack://siteoforigin:,,,/a.gif" Stretch="None" VerticalAlignment="Top" />
    </Grid>
</Window>
4. Ctrl+Shift+B 또는 F6를 눌러 프로젝트를 빌드하고 이미지를 bin/debug(또는 Release)에 복사한 후 F5을 눌러 실행해 봅니다.
5. Orcas RC1에서는 이미지가 보이지 않고 Beta1에서는 이미지가 보이며 둘 다 디자인 모드에서는 표시되지 않습니다.
------------------------------------------------------------------------

아직 제대로된 해결책은 안나왔어요.

사실 이것 말고도 VS 2005, Orcas에 내장된 XAML 그래픽 편집기(코드명 Cider)는 아직 이런저런 문제를 가지고 있는 것 같아요. 반면 XAML 텍스트 편집기는 매우 훌륭하게 동작되고 인텔리센스도 잘 지원해주고 있지요.

일단 제 경우는 Visual Studio에서 XAML을 건드릴 때는 Cider를 아예 숨겨놓고 쓰고 있어요. XAML을 디자인적으로 수정할 때에는 그냥 Expression Blend를 쓰는게 훨씬 편하니까요. 그런데 Blend와 Visual Studio를 왔다갔다 하다보면 또 XAML코드가 꼬이는 현상도 있어서 그것도 문제지만요. -_-

이런 문제가 나오는 건 아마도 XAML 편집기들이 아직 성숙하지 않아서이기도 하고 개발자 혹은 디자이너도 이런 방식의 편집에 익숙치 않아서일거에요. 늘 그렇듯이 시간이 해결해주겠지요.

그나마 Beta1은 런타임에서는 siteoforigin URI를 인식하고 제대로 동작하니까 특별한 문제는 없을 것 같네요.
저는 이제 2005는 아예 설치도 안하고 Orcas Beta1을 쓰고 있답니다. 해피~ :)
신고
Posted by gongdo


티스토리 툴바