Легкое создание кнопок на ленте для вызова внешних команд

Автор Тема: Легкое создание кнопок на ленте для вызова внешних команд  (Прочитано 33255 раз)

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

Оффлайн semyon

  • ADN OPEN
  • Сообщений: 4
  • Карма: 0
всё уже создал спасибо, щас постараюсь удалить предыдущие сообщения

Оффлайн Agens

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Может кто подскажет в чем причина?

VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

Оффлайн Agens

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Еще как pushButtonData.LargeImage = new BitmapImage(new Uri("D:\\_C#\\Button_image.png")); засунуть картинку из Resources?
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

Оффлайн Agens

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Код - C# [Выбрать]
  1. // assign bitmap to button
  2.             pushButton.LargeImage = largeImage;
как засунуть картинку из Resources?

PS. сообщения не удаляются?
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
PS. сообщения не удаляются?
Нет. Это один из принципов этого форума.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Agens

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
Код - C# [Выбрать]
  1. // assign bitmap to button
  2.             pushButton.LargeImage = largeImage;
как засунуть картинку из Resources?

PS. сообщения не удаляются?

Получилось вот так...

Код - C# [Выбрать]
  1.         public BitmapImage ConvertToBitmapImage(Bitmap src)
  2.         {
  3.             MemoryStream ms = new MemoryStream();
  4.             ((System.Drawing.Bitmap)src).Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
  5.             BitmapImage image = new BitmapImage();
  6.             image.BeginInit();
  7.             ms.Seek(0, SeekOrigin.Begin);
  8.             image.StreamSource = ms;
  9.             image.EndInit();
  10.             return image;
  11.         }
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Получилось вот так...

Код - C# [Выбрать]
  1.            public BitmapImage ConvertToBitmapImage(Bitmap src)
  2.             {
  3.                 MemoryStream ms = new MemoryStream();
  4.                 ((System.Drawing.Bitmap)src).Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
  5.                 BitmapImage image = new BitmapImage();
  6.                 image.BeginInit();
  7.                 ms.Seek(0, SeekOrigin.Begin);
  8.                 image.StreamSource = ms;
  9.                 image.EndInit();
  10.                 return image;
  11.             }
  12.  
Чтобы не было утечки памяти лучше использовать такую конструкцию:
Код - C# [Выбрать]
  1. using (MemoryStream ms = new MemoryStream())
  2. {
  3. //... Тут твой код
  4. }
  5.  
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Может кто подскажет в чем причина?

Скорей всего сборка VCRevitRibbonUtil.dll не попала в папку, где лежит сборка надстройки.

Оффлайн Agens

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
я ее подключаю и "копировать локально" ставлю false или ее нужно кидать в "addins"?
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Они должны быть в одном каталоге. Иначе твоё приложение его не найдёт.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Agens

  • ADN OPEN
  • ***
  • Сообщений: 223
  • Карма: 0
VS2019, VBA 7.1, VB.NET, C#, ACAD2019, Revit 2020

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Еще как pushButtonData.LargeImage = new BitmapImage(new Uri("D:\\_C#\\Button_image.png")); засунуть картинку из Resources?
А ведь в утилитке как раз есть пример, как из ресурсов изображение добавить
Код - C# [Выбрать]
  1.                 .CreateStackedItems(si => si.CreateButton<XXXXCommand>("XXXX", "XXXX",
  2.                     b =>
  3.                     {
  4.                         b.SetLargeImage(Resources.b_32);
  5.                         b.SetSmallImage(Resources.b_16);
  6.                     })