TransientManager цвет текста?

Автор Тема: TransientManager цвет текста?  (Прочитано 5100 раз)

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

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
TransientManager цвет текста?
« : 22-02-2016, 11:38:58 »
Всем добрый день,
Почему не меняется цвет текста временной графики?  :(
Тестовый пример:
Код - C# [Выбрать]
  1.       [CommandMethod("Test", CommandFlags.Modal)]
  2.       public void Test()
  3.       {
  4.          Document doc = Application.DocumentManager.MdiActiveDocument;
  5.          if (doc == null) return;
  6.          Database db = doc.Database;
  7.          Editor ed = doc.Editor;
  8.  
  9.          // Запрос выбора полилинии, дополнительно возвращается указанная точка.
  10.          Point3d ptPicked;
  11.          ObjectId idPolyline = SelectPolyline(ed, out ptPicked);
  12.          if (idPolyline.IsNull) return;
  13.  
  14.          // Текст для временной графики
  15.          DBText text = new DBText();
  16.          text.SetDatabaseDefaults(db);
  17.          text.Position = ptPicked;
  18.          text.TextString = "Test";
  19.          // Высота относительно текущего вида
  20.          text.Height = ed.GetCurrentView().Height * 0.025;
  21.          text.Color = Color.FromColor(System.Drawing.Color.Red);
  22.          text.Justify = AttachmentPoint.MiddleCenter;
  23.          text.AlignmentPoint = ptPicked;
  24.          text.AdjustAlignment(db);
  25.          
  26.          // Добавление временной графики.
  27.          // То, что я не сохраняю нарисованный объект, пока не важно. Интересует только цвет. Он не меняется.
  28.          Autodesk.AutoCAD.GraphicsInterface.TransientManager tm = Autodesk.AutoCAD.GraphicsInterface.TransientManager.CurrentTransientManager;
  29.          tm.AddTransient(text, Autodesk.AutoCAD.GraphicsInterface.TransientDrawingMode.Main, 0, new IntegerCollection());
  30.       }
  31.  
  32.       private ObjectId SelectPolyline(Editor ed, out Point3d ptPicked)
  33.       {
  34.          var prOpt = new PromptEntityOptions("\nВыберите полилинию");
  35.          prOpt.SetRejectMessage("\nМожно выбрать только полилинию");
  36.          prOpt.AddAllowedClass(typeof(Autodesk.AutoCAD.DatabaseServices.Polyline), true);
  37.          prOpt.AllowNone = false;
  38.          prOpt.AllowObjectOnLockedLayer = true;
  39.  
  40.          var prRes = ed.GetEntity(prOpt);
  41.          if (prRes.Status == PromptStatus.OK)
  42.          {
  43.             ptPicked = prRes.PickedPoint;
  44.             return prRes.ObjectId;
  45.          }
  46.          ptPicked = Point3d.Origin;
  47.          return ObjectId.Null;
  48.       }
« Последнее редактирование: 22-02-2016, 12:48:02 от vildar82 »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: TransientManager цвет текста?
« Ответ #1 : 22-02-2016, 15:20:11 »
Интересный факт. Добавил еще окружность с тем же цветом. Результат:
Visual Style: 2dWireFrame

Visual Style: Realistic (и любой другой кроме 2dWireFrame)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Вильдар 22-02-2016, 15:35:04

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: TransientManager цвет текста?
« Ответ #2 : 22-02-2016, 15:29:11 »
А вот VisualStyle == 2DWireFrame, но (!!!) шрифт не TTF, а SHX:


Ну и здесь объяснение: https://forums.autodesk.com/t5/net/transient-text-color/m-p/4352239#M36227
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Re: TransientManager цвет текста?
« Ответ #3 : 22-02-2016, 15:38:20 »
Т.е. дело в ttf шрифте.
Да, поменял шрифт на shx, текст меняет цвет на установленный.