public ButtonPanel(List<CommandDetails> listCommandDetails, int columns, int buttonMargin)
        {
            InitializeComponent();
            commandDetails = listCommandDetails;
            mainGrid.Columns = columns;//listButtonDetails.Count < 5 ? listButtonDetails.Count : 5;
            mainGrid.Rows = (int)Math.Ceiling(listCommandDetails.Count / (double)mainGrid.Columns);
            mainGrid.Width = 30 * mainGrid.Columns;
            mainGrid.Height = 30 * mainGrid.Rows;

            for (int i = 0; i < commandDetails.Count; i++)
            {
                EditorToolBarButton b = new EditorToolBarButton(commandDetails[i]);
                b.Margin = new Thickness(buttonMargin);
                b.Click += new RoutedEventHandler(panelButton_Click);
                b.Style = (Style)FindResource("MathToolBarButtonStyle");
                b.SetValue(Grid.ColumnProperty, i % mainGrid.Columns);
                b.SetValue(Grid.RowProperty, i / mainGrid.Columns);
                b.FontFamily = FontFactory.GetFontFamily(FontType.STIXGeneral);
                //b.FontSize = 10;
                if (commandDetails[i].Image != null)
                {
                    b.Content = commandDetails[i].Image;
                }
                else
                {
                    b.Content = commandDetails[i].UnicodeString;
                }
                mainGrid.Children.Add(b);
                if (commandDetails[i].CommandType == CommandType.None) //This is an ugly kludge!
                {
                    b.Visibility = System.Windows.Visibility.Hidden;
                }
            }
        }
        public ButtonPanel(List <CommandDetails> listCommandDetails, int columns, int buttonMargin)
        {
            InitializeComponent();
            commandDetails   = listCommandDetails;
            mainGrid.Columns = columns;//listButtonDetails.Count < 5 ? listButtonDetails.Count : 5;
            mainGrid.Rows    = (int)Math.Ceiling(listCommandDetails.Count / (double)mainGrid.Columns);
            mainGrid.Width   = 30 * mainGrid.Columns;
            mainGrid.Height  = 30 * mainGrid.Rows;

            for (int i = 0; i < commandDetails.Count; i++)
            {
                EditorToolBarButton b = new EditorToolBarButton(commandDetails[i]);
                b.Margin = new Thickness(buttonMargin);
                b.Click += new RoutedEventHandler(panelButton_Click);
                b.Style  = (Style)FindResource("MathToolBarButtonStyle");
                b.SetValue(Grid.ColumnProperty, i % mainGrid.Columns);
                b.SetValue(Grid.RowProperty, i / mainGrid.Columns);
                b.FontFamily = FontFactory.GetFontFamily(FontType.STIXGeneral);
                //b.FontSize = 10;
                if (commandDetails[i].Image != null)
                {
                    b.Content = commandDetails[i].Image;
                }
                else
                {
                    b.Content = commandDetails[i].UnicodeString;
                }
                mainGrid.Children.Add(b);
                if (commandDetails[i].CommandType == CommandType.None) //This is an ugly kludge!
                {
                    b.Visibility = System.Windows.Visibility.Hidden;
                }
            }
        }