2011-07-03 8 views
0

사용자 지정 컨트롤 (고정 된 이미지가있는 둥근 버튼)을 만들고 작동하는지 테스트했습니다. 그러나, 나는이 특정 컨트롤을 다른 프로젝트에서 재사용하고 싶기 때문에 클래스 라이브러리를 만들 생각을했습니다. 그러나 사용자 정의 컨트롤을 다른 응용 프로그램에 표시하려고하면 단추가 클릭에 응답하더라도 아이콘이 표시되지 않습니다.참조의 사용자 지정 컨트롤이 올바르게 렌더링되지 않습니다.

클래스 라이브러리 프로젝트에서 아이콘을 컨텐츠 및 자원으로 빌드하고 테스트했지만 아무런 효과가 없었습니다. (물론 빌드 아이콘을 업데이트 할 때 코드의 아이콘 주소 지정이 변경됩니다.) 현재, 콘텐츠로 제작되기 위해 /icons/myimage.png 아이콘을 남겨두기로 결정했습니다. 그리고 클래스 라이브러리 코드 (XAML)에서 "/icons/myimage.png"로 액세스하고 있습니다.

내 프로젝트에서 둥근 버튼을 올바르게 렌더링 할 수있는 방법에 대한 아이디어가 있습니까? 클래스 라이브러리 프로젝트는 어떻게 작성해야합니까?

+0

리소스 빌드 작업을 시도한 URI는 무엇입니까? –

+0

@Georgi Stoyanov - 참고 :이 DLL은 참조 DLL에 구성되어 있으므로 아이콘은 리소스로 저장됩니다. . 아이콘이 내용으로 작성되면 . MyLib은 클래스 라이브러리 프로젝트가 빌드 될 때 생성되는 어셈블리입니다. –

답변

0

조금 실험하고 해결책을 찾았습니다. 아이디어는 임베디드 리소스을 사용하여 이미지를 dll에 저장하는 것입니다. 그리고 다음 CustomControl하여로드하기 위해, 하나는이 같은 구조를 사용할 수 있습니다 : 여기

BitmapImage img = new BitmapImage(); 
img.SetSource(Assembly.GetExecutingAssembly().GetManifestResourceStream("MyLib.icons.my_icon.png")); 

MYLIB 클래스 라이브러리 어셈블리의 이름입니다. 아이콘은 리소스가 어셈블리에 보관되는 폴더입니다.

0

그래픽 클래스를 만들지 않을 것입니다. 장래에 사용자 정의가 필요할 것이기 때문에 맞춤 모듈에 다음과 같은 속성을 지정하고 이미지를 설정하는 것이 좋습니다. 그것을 사용하십시오 :

public ImageSource ButtonImage {get { return <button image>; } set { <set button image>; } } 
+0

답장을 보내 주셔서 감사합니다. 그러나이 특별한 경우에는 해당 컨트롤의 아이콘이 다양한 프로젝트에서 변경되지 않습니다. 나는 당신의 요지를 이해하지만, 나는 모든 프로젝트에서 통제하는 구성을 원하지 않는다. 내가 원하는 것을 제안 해 주시겠습니까? –

관련 문제