2010-03-09 3 views
2

"close.png"라는 리소스가있는 클래스 라이브러리 (mylibrary)가 있습니다. 리소스가 실제로 dll에 있는지 확인하기 위해 redGate reflector를 사용했습니다. 이 일에클래스 라이브러리의 리소스를로드하는 중 문제가 발생했습니다.

Button closeButton = new Button() 
{ 
    Content = new System.Windows.Controls.Image() 
    { 
     Source = crossImage 
    }, 
    MaxWidth = 20, 
    MaxHeight = 20 
}; 

:

이 BitmapImage crossImage
BitmapImage crossImage = new BitmapImage(); 
crossImage.BeginInit(); 
crossImage.UriSource = new Uri(@"/mylibrary;component/Resources/close.png", UriKind.RelativeOrAbsolute); 
crossImage.EndInit(); 

은 다음과 같이 사용됩니다 :이 같은이 "close.png"리소스를 추출하려고 시도 곳 지금 내가 프로젝트에 mylibrary.dll 사용 나는 던져지는 예외를 얻지 만 버튼은 아무런 이미지도 보여주지 않는다. 또한 디버거에서 버튼의 'content'를 조사하면 예외 정보가 표시됩니다.

답변

4

임베디드 리소스입니까? 라는 콤보도있다 리소스 편집기에서 MSDN

//not tested, but should be like this 
BitmapImage = <namespace>.Properties.Resources.<imagename>; 
+0

에 좋은 튜토리얼이있다,

그렇다면 (질문에서 해당을 할 수 없습니다) '액세스 수정' '추가 자원 옆에 '버튼을 누릅니다. 다른 어셈블리에서 자원에 액세스하려면 * public *으로 설정하십시오. – Oliver

+0

그리고 GetAssembly를 사용해야합니다. 자세한 내용은 http://www.csharper.net/blog/getting_an_embedded_resource_file_out_of_an_assembly.aspx를 참조하십시오. – RvdK

관련 문제