Что я могу сделать, чтобы мой дочерний пользовательский элемент управления появился в библиотеке Blend Assets? - PullRequest
2 голосов
/ 16 августа 2011

Я создаю серию шаблонов макетов окон, основанных на превосходной библиотеке Макетов, доступной на CodePlex .

Я также использую их BaseMockup в качестве основы для управления иЯ выполнил ту же схему шагов, перечисленных здесь для получения производных от существующих элементов управления (создайте новый пустой класс, добавьте свой стиль по умолчанию в /Themes/generic.xaml и т. Д.)

Элемент управления работает отлично - единственное, что он не отображается в библиотеке ресурсов.Я думаю, это потому, что он является дочерним или потому, что мне нужен какой-то атрибут (эквивалент ToolboxItemAttribute для элементов управления WinForms? ... который не работал) для его подключения.

Когда я изменяю код, производный непосредственно от Control, он обнаруживается - никакой настраиваемый атрибут не требуется.Конечно, это противоречит цели того, что я пытаюсь сделать, хотя ...

Единственное, что я могу найти, это несколько статей , рассказывающих Мне нужно гадить с ключами реестра, и ни один из них не ясен или не предлагает определенного способа сделать это с помощью Blend 4. Последний рекламируется как статья с советами по Blend 4, но в конце признает, что он плагиатирует контент издругие два (для Blend 3).

Это мой единственный вариант - зарегистрировать мою DLL?Есть ли лучший способ сделать это?

Ответы [ 3 ]

1 голос
/ 17 августа 2011

Я полагаю, что вам нужно испортить ключи реестра.В частности,

32 бит: HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ .NET Framework \ v4.0.30319 \ AssemblyFoldersEx

64 бит: HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Wow6432Node \ Microsoft \ .NET Framework \ v4.30\ AssemblyFoldersEx

Создайте новый ключ с именем вашей управляющей сборки.Затем отредактируйте строковое значение по умолчанию для этого ключа и задайте значение для каталога, в котором установлены управляющие сборки. См. Здесь для полного примера (с использованием путей Silverlight).

1 голос
/ 18 августа 2011

Нашел его - в конце концов, есть аналоговый атрибут, это ToolboxBrowsableAttribute .

Вам нужно пройти еще немного ригмарки, чтобы настроить его, но он прекрасно работает - нетПеребор реестра необходим.Это требует создания класса провайдера метаданных дизайнера, приписывания вашей сборки так, что она может быть обнаружена дизайнером, а затем добавления атрибутов к вашим дочерним элементам управления внутри провайдера метаданных.

Убедитесь, что вы выбрали соответствующую версию страницы.для вашей версии Visual Studio, поскольку в период между 2008 и 2010 годами интерфейс немного изменился.

В этой статье о CodeProject есть несколько хороших реальных примеров такой настройки.Они все в стиле 2008 года, так что имейте это в виду, если вы используете 2010.

1 голос
/ 17 августа 2011

Некоторое время назад я написал пост об этом .Я включил файл .reg и файл .bat для настройки реестра и некоторых каталогов.Я думаю, это то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...