2010-07-28 4 views
2

Silverlight 응용 프로그램에서 작업하고 있으며 응용 프로그램에서 이미지의 상대 경로를 설정하는 데 어려움이 있습니다.Silverlight에서 상대 경로를 제공하여 이미지를 찾을 수 없습니다.

이 내 프로젝트 디렉토리에 대한 간단한 사진입니다 : L 이미지 L의 mountain1.jpg L의 SpriteObjects이 L의 MountainFactory.cs이 L GameScreen.xaml 원래

, 나는이 사각형을 그린

에 MyProject GameScreen.xaml의 이미지 브러시를 사용합니다.

<Rectangle Name="rec_bg" HorizontalAlignment="Left" VerticalAlignment="Top" Width="800" Height="600"> 
    <Rectangle.Fill> 
     <ImageBrush x:Name="ib_bg" ImageSource="./images/mountain1.jpg" ></ImageBrush> 
    </Rectangle.Fill> 
</Rectangle> 

이 xaml 코드는 이미지 폴더에있는 이미지를 아무런 문제없이 찾을 수 있습니다.

동적으로 이미지를 변경하고 MountainFactory.cs라는 클래스를 만들었습니다. 이 방법은 rec_bg의 Rectangle 객체에 적용되는 이미지 브러시를 반환합니다

ImageBrush brush = new ImageBrush(); 
BitmapImage image = new BitmapImage(new Uri("./images/mountain" + level + ".jpg", UriKind.Relative)); 
brush.ImageSource = image; 

:이 클래스에서는,이 코드를하는 방법이있다. 그러나이 코드는 지정된 이미지를 찾을 수 없습니다.

해결 방법을 아는 사람이 있습니까? 감사합니다. .

답변

3

이미지 삽입 방법에 따라 다릅니다. "Content"로 설정 했으므로 DLL에 포함되어 있지 않지만 XAP에 포함되어 있다고 가정합니다.

"이미지/산 ..."

(참고, 당신은 ./ 앞에 사용하지 않는 : 당신이 사용하는 것 때문에이 경우, 당신은 단순히 상대 프로젝트 루트에 액세스 자동으로 응용 프로그램의 루트와 관련이 있습니다). 임베디드 리소스로 설정 한 경우 스트림을 사용하여 DLL에서 추출해야합니다. 권장하지 않습니다.

간단한 이야기 ​​지루함 : 선행 ./을 제거하고 이미지의 속성에 내용이 있는지 확인하십시오.

관련 문제