로컬 파일에 대한 Access 권한 때문에 Image 객체에 Source 셋팅 시
Image temp_img = new Image();
temp_img.Source = "C:/temp.png";
이렇게는 접근을 할 수가 없다.
OpenFileDialog 를 통해서 파일을 읽어 온다 하더라도
Select 한 파일의 FullName을 얻을 려고 할 경우 Security Exception이 발생 할 것이다.
즉, 로컬 파일에 대한 Access는 불가능 하다는 것이다.
해결 방법 이라면, Active X 이용 이라던지, OOB 를 이용 하는 것인데, OOB 이용으로 권한 상승을 시켜준다 해도, 제한적으로만 접근이 가능 하다.^^(My Document 폴더 아래로만...가능)
그렇 다면, 파일 업로드 전에 선택한 이미지 파일의 미리 보기를 구현 하고 싶은데 어떻게 해야 할까?
정답은 바로 Stream 을 이용하는 것이다.
FileInfo temp = (FileInfo)e.SelectedFiles[i].File;
Stream stream = temp.OpenRead();
Image temp_img = new Image();
temp_img.Width = 50;
temp_img.Height = 50;
BitmapImage bitmap_img = new BitmapImage();
bitmap_img.SetSource(stream);
temp_img.Source = bitmap_img;
stream.Close();
OpenFileDialog로 선택한 파일을 OpenRead() 메쏘드로 읽어 BitmapImage 를 셋팅 한다.
셋팅 된 BitmapImage 를 Image 객체에 셋팅 하면 끝.^^
위의 예제는 유료 컨트롤을 사용한 것이라 그대로 갖다 붙이면 에러~~~뜹니다.
안된다고 주저 앉지 말고, ㄱㄱ!!
'프로그래밍 > 실버라이트' 카테고리의 다른 글
[실버라이트] HTMLTextBlock -- HTML 파싱이 가능한 CUSTOM TextBlock (0) | 2011.07.12 |
---|---|
[실버라이트] TextBox 에 MouseLeftButtonUp 이벤트 주기 (0) | 2011.02.24 |
[실버라이트] JSON 구문 분석 (0) | 2011.02.15 |
[실버라이트] JSON 정리 및 구문 분석 (0) | 2011.02.15 |
[실버라이트] C# - 4.0 dynamic (0) | 2011.01.26 |