2009-02-23 3 views
30

Silverlight에서 코드 숨김을 통해 이미지를 동적으로 생성하고 있으며 이미지 소스가 문자열 또는 Uri를 경로로 허용하지 않는 것 같습니다.Silverlight (코드 숨김)에서 Image.Source를 어떻게 설정합니까?

어떻게 소스를 설정할 수 있습니까?

+0

이를 나도 알아낼 수있게했다. Guantam의 대답은 내가 사용한 것과 같습니다. – BenMaddox

+0

조금 변경해야했지만 경로에 네임 스페이스를 넣지 않아도되었습니다 – Drahcir

답변

53

문자열을 원본으로 허용하지 않는다는 것을 어떻게 의미합니까?

이 작업을 수행 할 수 없습니까?

또는 이미지가 메모리에 있다고 말하면서 참조하는 방법을 모르십니까?

this.MyImage.Source = new BitmapImage(new Uri("/MyNameSpace;images/someimage.png", UriKind.Relative)); 
+1

asnt.net에서와 같이 MyImage.Source = "/MyNameSpace;images/someimage.png"와 같은 문자열을 허용하지 않습니다. – Drahcir

+0

아, 그것을 필요로했다! – Michel

+4

내 프로젝트에서 "구성 요소"를 추가해야합니다. this.MyImage.Source = new BitmapImage (새 Uri ("/ MyNameSpace; components/images/someimage.png", UriKind.Relative)); – Raptor

6
// create a new image 
Image image = new Image(); 

// better to keep this in a global config singleton 
string hostName = Application.Current.Host.Source.Host;     
if (Application.Current.Host.Source.Port != 80) 
    hostName += ":" + Application.Current.Host.Source.Port; 

// set the image source 
image.Source = new BitmapImage(new Uri("http://" + hostName + "/image111.jpg", UriKind.Absolute)); 
+0

HTTP 프로토콜을 사용할 필요가 없습니다. 그냥 로컬 리소스를 사용하여 괜찮습니다. – Raptor

1

본인은이 솔루션 작업을 얻기 위해 다음과 같은 대체하는 데 필요한 :

this.MyImage.Source = new BitmapImage(new Uri("/MyNameSpace;components/images/someimage.png", UriKind.Relative)); 

MyNamespace에 나를 위해 작동하지 않았다을하지만, ExecutingAssemblyName 때문에, 한 :

Dim tmp As String() = Assembly.GetExecutingAssembly.FullName.Split(","c) 
Dim path As String = "/" & tmp(0) & ";component/images/" 
MyImage.Source = new BitmapImage(new Uri(path & "someImage.png")) 
관련 문제