Profile Picture

remove icons from nDiagramCommandBarsManager

Posted By Cristianf 10 Years Ago
Author
Message
Cristianf
Problem Posted 10 Years Ago
View Quick Profile
Forum Newbie

Forum Newbie (6 reputation)Forum Newbie (6 reputation)Forum Newbie (6 reputation)Forum Newbie (6 reputation)Forum Newbie (6 reputation)Forum Newbie (6 reputation)Forum Newbie (6 reputation)Forum Newbie (6 reputation)Forum Newbie (6 reputation)

Group: Forum Members
Last Active: 9 Years Ago
Posts: 14, Visits: 24
Like subject says I'm trying to remove some commands I don't use from the DiagramCommandBarsManager.
I searched about it and found this:
http://support.nevron.com/KB/a48/replace-override-the-commands-in-command-bars-manager.aspx

I tried to remove the PDF Export... icon + command from the toolbar and from the "File" context menu but it didn't work, here is my code:

            NPdfExportCommand newD = (NPdfExportCommand)nDiagramCommandBarsManager1.Commander.Commands.GetCommandFromId((int)DiagramCommand.PdfExport);
            int index = nDiagramCommandBarsManager1.Commander.Commands.IndexOf(newD);
            nDiagramCommandBarsManager1.Commander.Commands.RemoveAt(index);
            nDiagramCommandBarsManager1.Refresh();


It disables the command so when I click the icon it doesn't show me anything... but I would like to remove the icon so it doesn't appear.




Nevron Support
Posted 10 Years Ago
View Quick Profile
Supreme Being

Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)Supreme Being (4,435 reputation)

Group: Forum Members
Last Active: Last Week
Posts: 3,054, Visits: 4,009
Hello Cristianf,

To remove or change the icon in a command from NDiagramCommandBarsManager you will need to override CreateUICommand method in manager’s commander class (NDiagramCommander)

Here is an example which you can use:


public class MyNDiagramCommander : NDiagramCommander
{
      public override object CreateUICommand(NDiagramCommand command)
      {
            NCommandContext context = new NCommandContext();

            // range and id
            context.RangeID = command.RangeId;
            context.Properties.ID = command.Id;

            // text and tooltip
            context.Properties.Text = command.Text;
            context.TooltipText = command.TooltipText;

            // shortcut
            if (command.Shortcut != null)
            {
                  context.Properties.Shortcut = command.Shortcut;
            }

            // image
            NCustomImageList imageList;
            int imageIndex;
            if (command.GetImageInfo(out imageList, out imageIndex))
            {
                  //Here we make a check for the command's type (in this case one that format text to be bold) so we can omit the drawing of the icon.
                  //However, you can put any other logic here.
                  if (command is NMakeBoldTextCommand)
                  {
                  }
                  else
                  {
                        context.Properties.ImageInfo.Image = imageList.GetImage(imageIndex);
                  }                      
            }

            return context;        
      }
}


Then you need to set an instance of the new commander to the command bars manager and call recreate method:

MyNDiagramCommander commander = new MyNDiagramCommander();
m_DiagramCommandBarManager.Commander = commander;
m_DiagramCommandBarManager.Recreate();


Hope this helps.

Best Regards,
Nevron Support Team





Similar Topics


Reading This Topic