Размер иконок на панели

Автор Тема: Размер иконок на панели  (Прочитано 2989 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн makslАвтор темы

  • ADN OPEN
  • Сообщений: 21
  • Карма: 4
Размер иконок на панели
« : 19-12-2017, 09:53:57 »
Никак не могу добиться, чтобы иконки на панели были большие - 32х32.
Создаю кнопки так:

Код - C# [Выбрать]
  1.     static BitmapImage GetEmbeddedImage(Bitmap bMp)
  2.     {
  3.         MemoryStream ms = new MemoryStream();
  4.         bMp.Save(ms, ImageFormat.Png);
  5.  
  6.         BitmapImage b = new BitmapImage();
  7.         b.BeginInit();
  8.         b.StreamSource = ms;
  9.         b.EndInit();
  10.  
  11.         return b;
  12.     }
  13.  
  14. ...
  15.  
  16.         data = new PulldownButtonData("tech", "АТХ\nТХ");
  17.         item = rvtRibbonPanel.AddItem(data);
  18.         PulldownButton btnTh = item as PulldownButton;
  19.  
  20.         btnTh.Image = GetEmbeddedImage(ATX_R16_maksl_addins.Properties.Resources.atxLogo16);
  21.         btnTh.LargeImage = GetEmbeddedImage(ATX_R16_maksl_addins.Properties.Resources.atxLogo32);
  22. ...
  23.  
  24.  

atxLogo16 и atxLogo32 - png картинки в 256 цветов без компрессии.

Перелопатил кучу вариантов, ничего не помогает. :(
Получается всегда вот так:


Помогите разобраться, плз.
« Последнее редактирование: 19-12-2017, 11:26:18 от maksl »

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Размер иконок на панели
« Ответ #1 : 19-12-2017, 09:57:19 »
Никак не могу добиться, чтобы иконки на панели были большие - 32х32
А что у вас получается?

Отмечено как Решение maksl 19-12-2017, 11:26:39

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Размер иконок на панели
« Ответ #2 : 19-12-2017, 10:04:25 »
Ага - увидел картинку. Сразу не было
Во-первых - что для Автокада, что для Ревита - нужно использовать изображения размерами 16х16 и 32х32 пикселей с разрешением 96 пикселей на дюйм

Во-вторых - все вот эти "извращения" с добавлением изображений к ресурсам проекта (в свойствах проекта), заданием свойства "внедренный ресурс" и целыми методами по извлечению не нужны )) Просто добавляйте к проекту нужное изображение и делайте его "Resource". Дальше просто задавайте Uri типа pack. Вот пример из рабочего проекта:
Код - C# [Выбрать]
  1. private void CreateRibbonTab(UIControlledApplication application)
  2.         {
  3.             RibbonPanel ribbonPanel = null;
  4.             bool hasPanel = false;
  5.             foreach (RibbonPanel panel in application.GetRibbonPanels())
  6.             {
  7.                 if (panel.Name.Equals("ModPlus"))
  8.                 {
  9.                     ribbonPanel = panel;
  10.                     hasPanel = true;
  11.                     break;
  12.                 }
  13.             }
  14.             // add new ribbon panel to add-ins tab
  15.             if (!hasPanel)
  16.                 ribbonPanel = application.CreateRibbonPanel("ModPlus");
  17.            
  18.             PushButtonData rid = new PushButtonData(
  19.                 "Dim Offset",
  20.                 "Dim Offset",
  21.                 Assembly.GetExecutingAssembly().Location,
  22.                 "mprDimBias.Application.MprDimBiasCommand")
  23.             {
  24.                 LargeImage = new BitmapImage(new Uri("pack://application:,,,/mprDimOffset;component/Resources/mprDimBias_32x32.png"))
  25.             };
  26.             if (ribbonPanel.AddItem(rid) is PushButton pushButton)
  27.             {
  28.                 pushButton.ToolTip =
  29.                     "The function monitors all the created and modified dimensions and, in case the dimensional text falls on dimensional lines it displaces the dimensional text aside";
  30.                 try
  31.                 {
  32.                     pushButton.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url,
  33.                         Path.Combine(new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName,
  34.                             "Help.html")));
  35.                 }
  36.                 catch
  37.                 {
  38.                     // ignore
  39.                 }
  40.             }
  41.         }
В третьих - при форматировании кода выбирайте C#



Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Размер иконок на панели
« Ответ #3 : 19-12-2017, 10:05:08 »
Да, забыл уточнить - использовать желательно изображения с расширением png

Оффлайн makslАвтор темы

  • ADN OPEN
  • Сообщений: 21
  • Карма: 4
Re: Размер иконок на панели
« Ответ #4 : 19-12-2017, 11:28:00 »
Точно, все дело было в разрешении!
Спасибо.
И по остальным пунктам тоже принял на вооружение! :)