Комментарии 2
Если переключить стиль в классический и обратно то панель пропадет. Можно отследить WSCURRENT.
Да и для красоты стоит добавить картинок:
а для пущего эффекта еще и RibbonToolTip
Как-то так:
Да и для красоты стоит добавить картинок:
rButton2.LargeImage = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
Properties.Resources.positionalLeaderNode.GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromWidthAndHeight(32, 32));
rButton2.ShowImage = true;
rButton2.Size = RibbonItemSize.Large;
а для пущего эффекта еще и RibbonToolTip
Как-то так:
RibbonToolTip rButton2lToolTip = new RibbonToolTip()
{
Title = "Узловая выноска",
Image = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
Properties.Resources.positionalLeaderNodeToolTip.GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromWidthAndHeight(
Properties.Resources.positionalLeaderNodeToolTip.Width, Properties.Resources.positionalLeaderNodeToolTip.Height)),
Command = "TNGP_POSITIONALLEADER_NODE_ID"
};
RibbonButton rButton2 = new RibbonButton();
rButton2.ToolTip = rButton2lToolTip;
0
Про WSCURRENT — все так, нужно отслеживать переменную и при необходимости пересоздавать вкладку.
А настройка внешнего вида кнопок меня в свое время изрядно выбесила. До сих пор не представляю, как поместить иконку ТОЧНО В ЦЕНТРЕ кнопки (на последней картинке в статье видно, что если навести на кнопку курсор, то левая граница кнопки оказывается ближе к иконке, чем правая). И до сих пор не могу понять, можно ли внутрь кнопки нормально поместить текст. У вас с этим сложностей не возникало?
Как-то так:
using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.Windows;
namespace MyAutoCADDll
{
public class Commands : IExtensionApplication
{
// эта функция будет вызываться при выполнении в AutoCAD команды "TestCommand"
[CommandMethod("TestCommand")]
public void MyCommand()
{
// даем команду отслеживать изменения рабочей области (Workspace) AutoCAD
Autodesk.AutoCAD.ApplicationServices.Application.SystemVariableChanged +=
new Autodesk.AutoCAD.ApplicationServices.SystemVariableChangedEventHandler(onSystemVariableChanged);
}
public void Initialize()
{
}
public void Terminate()
{
}
// обработчик изменения рабочей области (Workspace) AutoCAD
void onSystemVariableChanged(object sender, Autodesk.AutoCAD.ApplicationServices.SystemVariableChangedEventArgs e)
{
// если рабочая область изменилась и в новой области есть лента (Ribbon)
if ((e.Name == "WSCURRENT") && (ComponentManager.Ribbon != null))
{
// создаем вкладку
addMyRibbonTab();
}
}
}
}
А настройка внешнего вида кнопок меня в свое время изрядно выбесила. До сих пор не представляю, как поместить иконку ТОЧНО В ЦЕНТРЕ кнопки (на последней картинке в статье видно, что если навести на кнопку курсор, то левая граница кнопки оказывается ближе к иконке, чем правая). И до сих пор не могу понять, можно ли внутрь кнопки нормально поместить текст. У вас с этим сложностей не возникало?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Публикации
Изменить настройки темы
Создание плагинов для AutoCAD с помощью .NET API (часть 2 – работа с лентой [Ribbon])