Архив

Записи с меткой «Toolbox»

Как добавить панели инструментов значок управления Silverlight

21 января 2009 1 комментарий

История изменений:

  • впервые опубликованных на 1/21/2008 для Silverlight 2/VS2008/Toolkit Выпуск декабрь 2008 года.
  • обновление 12/5/2009 для Silverlight 4/VS2010/Blend3/Toolkit ноября 2009 Release.

Элементы управления в Silverlight выполнения (например, system.windows.dll) и SDK (например, system.windows.controls.dll) есть хорошие иконки в панели инструментов Visual Studio и Blend. Декабрь 2008 выпуском Silverlight Toolkit добавил, что для набора средств управления тоже, как описано в моем предыдущем посте время разработки возможности в Silverlight Toolkit :

пользовательские иконки

Это сообщение объясняет, как это делается в Silverlight 2 SDK, и в декабре 2008 года выпуск Silverlight Toolkit.

Управление Иконки в Run Time Ассамблеи

Выпуск декабря 2008 года Silverlight Toolkit показал, как внедрить инструментарий значков для элементов управления без использования сборки время разработки.

Открытое Silverlight.Controls.sln в Visual Studio (см. предыдущий пост время разработки функций реализации в Silverlight Toolkit для получения дополнительной информации о том, как загрузить исходный набор инструментов):
Добавить иконки в период выполнения сборки, Visual Studio зрения

Вы также можете открыть Controls.csproj в блокноте:

<ItemGroup>
<EmbeddedResource Include="Microsoft.Windows.Controls.AutoCompleteBox.Icon.png" />
<EmbeddedResource Include="Microsoft.Windows.Controls.DockPanel.Icon.png" />
<EmbeddedResource Include="Microsoft.Windows.Controls.Expander.Icon.png" />
<EmbeddedResource Include="Microsoft.Windows.Controls.Label.Icon.png" />
<EmbeddedResource Include="Microsoft.Windows.Controls.TreeView.Icon.png" />
<EmbeddedResource Include="Microsoft.Windows.Controls.Viewbox.Icon.png" />
</ ItemGroup>

Вы также можете открыть Microsoft.Windows.Controls.dll в отражатель:

Добавить иконки в беге времени сборки, отражатель зрения

Все три показывают, что пользовательские иконки панели инструментов, внедренных ресурсов в период выполнения сборки Microsoft.Windows.Controls.dll, уделяя особое соглашение об именовании. Возьмите выше Microsoft.Windows.Controls.Microsoft.Windows.AutoCompleteBox.Icon.png в качестве примера:

  • Первый Microsoft.Windows.Controls является корневым пространством имен, указанных в controls.csproj файл с линии: <RootNamespace> System.Windows.Controls </ RootNamespace>
  • Следующий Microsoft.Windows.Controls.AutoCompleteBox является полное имя AutoCompleteBox класса, в том числе имен, но не сборки.
  • Остальные названия, icon.png, укажите тип ресурса значка, как это будет объяснено позже.

Иконки управления в режиме конструктора Ассамблеи время

Silverlight 2 SDK продемонстрировали подход встраивания пиктограммы управления в области дизайна время сборки.

Открытое System.Windows.Controls.Design.dll в отражатель (он установлен в папке% ProgramFiles% \ Microsoft SDKs \ Silverlight \ v2.0 \ Libraries \ Client):

вставлять значок в области дизайна время сборки, отражатель зрения

Возьмите выше Controls.Design.Icons.Calendar.bmp в качестве примера:

  • Controls.Design является корневым пространством имен, указанных в его csproj файл с линии <RootNamespace> Controls.Design </ RootNamespace>
  • Иконки в папке, где находится файл Calendar.bmp в дерево исходных текстов
  • Calendar.bmp это имя файла ресурса иконку в дерево исходных текстов

Иконка управления ресурсами Naming Convention

Итак, из выше двух примерах мы видим, что пользовательские иконки панели инструментов для управления внедренных ресурсов в любой сборки во время выполнения (так что вам не придется отправить проектирования сборок времени), или сборке время разработки (у вас есть возможность изменить иконки , как и локализовать ее для другой культуры, не касаясь запустить сборку времени). Инструментов (Visual Studio 2008 SP1 на данный момент) попытаться найти иконки на основе специального соглашения об именах:

  1. Поиск ресурсов именем файла без расширения соответствует типу имя элемента управления, в том числе имен, с "{XAML | BMP | PNG | GIF | JPG | JPEG} [значок *.]"..
    1. Обратите внимание, что подкаталоги влияют имен, в котором внедренные ресурсы находятся. Например, Инструментарий иконки ставятся под подпапку Microsoft.Windows.Controls, чтобы не подвергать эту длинную строку во всех именах значок файла, в то время как SDK поставить все иконки в папке Icons.
    2. Поддерживаемые расширения и типы файлов: XAML, BMP, GIF, JPG, JPEG и PNG
    3. Рекомендуемые размер изображения для растровых форматов файлов на основе составляет 64 × 64.
    4. [. Значок *] в именовании не является обязательным и позволяет указать несколько размеров изображения, который используется как значок. Соответствуют следующим следующему алгоритму:
      1. Векторные XAML
      2. Если есть точное соответствие по размеру (и размеры) использовать его
      3. Используйте ближайший матч в зависимости от размера и соотношения сторон
    5. Если данный ресурс файл не является допустимым XAML или действительный файл изображения, следующий матч будет использоваться, пока не найдет.
  2. Если изображение не найден в том же пространстве имен контролем, свободной матча в зависимости от типа одно только название будет искаться против всех ресурсов, как в случае с SDK.
  3. Различные узлы используют различные размеры изображений для их инструментов значок.
    1. Смесь используется 24 × 24 для их большого размера и 12 × 12 для их небольшого размера (я не думаю, что это работает в Blend 2 SP1).
    2. Сидр (Visual Studio) использует 16 × 16 BMP файлов.

Сообщение в блоге Указание Toolbox Иконка для элемента управления в WPF Конструктор описывает соглашение об именах подробнее.


Обновление для Blend3 и VS2010

Так как этот пост был впервые опубликован на 1/21/2008, мы сделали два ключевых усовершенствований в области контроля иконки:

  • Blend 3 показывает иконки для управления тоже: большие иконки (24 × 24) в библиотеке активов, а маленькие иконки (12 × 12) в объекты и сроки. Смотрите Silverlight время разработки: Инструментарий июля 2009 Выпуск обновлений для получения дополнительной информации.
  • Вы можете зарегистрировать свой контроль (и связанные с ними иконки) с Blend 3 и Visual Studio 2010. Смотрите Регистрация Silverlight управления с Visual Studio и смесь для получения дополнительной информации.
  • Именования значок ресурса вместе с пересмотренным именования для сборок время разработки. Смотрите Silverlight время разработки Ассамблеи для получения дополнительной информации о расширенной именования для сборок время разработки. Пожалуйста, обратите внимание, что поиск ресурсов икона находится в порядке, обратном порядку загрузки время разработки метаданных, то есть смесь будет искать для встраиваемых ресурс значка для управления с выше ресурс значка именования в формате *. Expression.Design *. DLL в первую очередь; только если он не будет смесь поиск общих *. Дизайн *. DLL второй, и только в том случае, если снова не удалось это будет искать соответствующие DLL времени выполнения для встроенного ресурса значка, а если все не смогли, Blend будет отображать иконку по умолчанию контроля. Visual Studio 2010 делает это подобным образом, но ищет *. VisualStudio.Design *. DLL в первую очередь.
  • Смешивание и Visual Studio теперь поддерживает более значок формата, и будет масштабироваться значок, если желаемый размер ресурсов (24 × 24 и 12 × 12 для Blend, и 16 × 16 для VS) не найдена.

Silverlight Toolkit использовать следующие обозначения для вложения значок ресурсы:

  • использования полных имен (пространство имен + типа, напр. System.Windows.Controls.Calendar), а не просто названия типов (например, календарь), чтобы избежать двусмысленности.
  • положить иконки для смешивания в общем. design.dll и значки на панели элементов Visual Studio в. VisualStudio.Design *. DLL. Таким образом, VS2010 может отображать значок правой панели инструментов, если он существует в библиотеке VisualStudio.Design *.;. Если нет, то VS2010 может загрузить иконку для Blend, масштабировать его до 16 × 16, и отобразить его в панели инструментов.
  • положил значок ресурса во время выполнения DLL только в крайнем случае (исключая, чтобы избежать поставки проектирования сборок время с единственным ресурсом, значок).

Вы можете видеть, управления ресурсами значок именования в Silverlight Toolkit исходный код :

Embed Blend Icons in Shared .Design.dll

Embed Visual Studio Icons in .VisualStudio.Design*.dll