2

우수한 Mockups library available on CodePlex을 기반으로 일련의 창 목업 템플릿을 만듭니다.하위 파생 사용자 정의 컨트롤을 Blend Assets 라이브러리에 표시하려면 어떻게해야합니까?

나는 BaseMockup을 컨트롤의 기반으로 사용하고 있으며, 기존 컨트롤에서 서브 파생을 위해 here으로 표시된 동일한 개요를 따랐다. 새로운 빈 클래스를 만들고, 기본 스타일을/Themes/generic.xaml 등)

컨트롤이 잘 작동합니다. 유일한 것은 애셋 라이브러리에 표시되지 않는다는 것입니다. 이것은 서브 - 파생 되었기 때문에, 또는 일부 속성 (WinForms 컨트롤에 대해 the ToolboxItemAttribute과 동등한 것 ... ... 작동하지 않음)이 필요하기 때문에 생각합니다.

컨트롤에서 직접 파생 코드를 수정하면 사용자 지정 특성이 필요하지 않습니다. 그래도 난 할 노력하고있어의 목적을 패배 물론 ...의

내가 찾을 수있는 유일한 방법은 several articles telling 날 레지스트리 키를 깨끗이하고, 그들 중 누구도 분명하지 않거나 확실한 방법을 제안이다

블렌드 4와 함께이 작업을 수행하십시오. 마지막 하나는 블렌드 4 팁 기사로 광고되지만, 나머지 두 개 (블렌드 3의 경우)의 내용을 표절한다는 것을 결국 인정합니다.

내 유일한 옵션은 내 DLL을 등록합니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?

답변

1

찾았습니다. 결국 아날로그 속성이 있습니다. 즉, ToolboxBrowsableAttribute입니다.

설정을하기 위해 좀 더 rigmarole을 거쳐야하지만 위대한 작품입니다. 레지스트리가 필요하지 않습니다. 디자이너 메타 데이터 공급자 클래스를 만들어서 디자이너가 검색 할 수 있도록 어셈블리를 생성 한 다음 메타 데이터 공급자 내의 하위 파생 컨트롤에 특성을 추가해야합니다. 인터페이스가 2008 년과 2010 년

This article on CodeProject 사이 좋은 비트를 변경하기 때문에

, 당신의 Visual Studio 버전에 대한 페이지의 해당 버전을 선택해야합니다이 설정의 좋은, 실제 사례를 가지고 . 그들은 모두 2008 년 스타일이기 때문에 2010을 사용한다면이 점을 명심하십시오.

1

얼마 전 나는 blogpost about this이라고 썼습니다. 나는 레지스터와 일부 디렉토리를 설정하기위한 .reg 파일과 .bat 파일을 포함시켰다. 나는 그것이 당신이 찾고있는 것이라고 생각합니다.

+0

이것은 정말 멋지지만 불행히도 문제를 해결하지 못합니다. 어셈블리에서 Control/UserControl 파생 컨트롤을 볼 수는 있지만이 하위 파생 컨트롤은 여전히 ​​표시되지 않습니다. – mcw0933

1

나는 당신이 레지스트리 키로 정신을 잃을 필요가 있다고 생각한다. 특히,

32 비트 : 마이크로 소프트 \ .NET 프레임 워크 \ HKEY_LOCAL_MACHINE \ 소프트웨어 \ v4.0.30319 AssemblyFoldersEx \

64 비트 : HKEY_LOCAL_MACHINE \ 소프트웨어 \ Wow6432Node \ 마이크로 소프트 \ .NET 프레임 워크 \ v4.0.30319 AssemblyFoldersEx

\

컨트롤 어셈블리의 이름으로 새 키를 만듭니다. 그런 다음이 키 아래의 기본 문자열 값을 편집하고 값을 컨트롤 어셈블리가 설치된 디렉토리로 설정하십시오. 전체 예제는 Silverlight 경로를 사용하는 See here을 참조하십시오.

+0

감사합니다 - 이것은 올바른 경로입니다.(Microsoft와 NET Framework 사이의 백 슬래시 점이 이스케이프 처리 된 점으로 처리 되었기 때문에 편집했습니다 ... doh!) – mcw0933

+0

Doh! 에디터에서 삼켜 버린 것 같아요, 고마워요. :) –

+0

죄송합니다, 나는 당신의 대답을 받아 들일 수 없습니다 - 그러나 내가 찾고있는 속성을 발견했기 때문에. 다시 한번 감사드립니다! – mcw0933

관련 문제