2009-04-09 2 views
1

나는 응용 프로그램을 개발 중이며 clientbin 폴더가 아닌 내 서버에있는 폴더에있는 이미지를로드합니다. 나는 이런 것을 할 것이다 BitmapImage bit = 새로운 BitmapImage(); 문자열 경로 = "c : /image.png"; bit.UriSource = new Uri (경로, UriKind.Absolute); identity.Source = bit; 하지만 작동하지 않습니다. 아무 생각 없나요? 감사로드 이미지가 xap 없음 Silverlight

답변

1

시도 :

Image.Source = 새 Imaging.BitmapImage (새로운 열린 우리당 ("http://www.Pic.jpg", UriKind.Absolute))

당신은 당신의 프로젝트 또는 그것을 포함하지 않습니다. xap은 커질 것이다.

0

Silverlight 응용 프로그램은 서버가 아니라 클라이언트에서 실행되므로 수행하려는 경로를 참조하면 실제로 응용 프로그램을 실행중인 클라이언트 컴퓨터의 경로를 가리 킵니다. 그러나 Silverlight에는 보안상의 이유로 인해 클라이언트의 디스크를 읽거나 쓸 수있는 권한이 없습니다. Isolated Storage 기능은 예외입니다.

따라서 Bill 또는 WebService가 제공하는 첫 번째 응답을 구현하는 것이 좋습니다. 구현하기가 더 복잡합니다.

ib.

0

Bill의 답변에 추가하십시오. xap 파일의 위치에서 파생 된 다음 도우미 메서드를 사용하여 서버 측 리소스를 사용할 수도 있습니다.

Image.Source = new Imaging.BitmapImage(new Uri(GetUrlForResource("images/myimage.png"), UriKind.Absolute)); 
:

public static string GetUrlForResource(string resourcePage) 
{ 

    var webUrl = Application.Current.Host.Source.ToString(); 
    //Get ClientBin Directory 
    var stub = webUrl.Substring(0, webUrl.LastIndexOf("/")); 
    //Get application root. 
    stub = stub.Substring(0, stub.LastIndexOf("/") + 1); 
    //Append the application root to the resource page. 
    webUrl = stub + resourcePage; 

    return webUrl; 
} 

빌의 대답처럼 사용하려면 다음을 사용

관련 문제