Архив

Записи с меткой 'Icon'

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

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

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

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

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

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

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

Управление иконки в Run время сборки

Выпуск декабря 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 SDK, \ Silverlight \ v2.0 \ Libraries \ Client):

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

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

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

Управление ресурсами Icon 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 файлов.

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


Обновление для 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 для смешивания и 16 × 16 VS) не найден.

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

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

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

Embed Blend Icons in Shared .Design.dll

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