.NET CAD 2014,自定义功能区菜单无法显示

时间:2019-01-18 06:52:11

标签: .net autocad

我创建了一个功能区菜单,然后看到调试信息,它成功添加到cad功能区面板中,最后一个选项卡由我创建。但是它没有显示在CAD中,发生了什么?并且其中有57个标签,但是CAD不会显示57个标签,只有9个。enter image description here 代码在这里:

RibbonControl rc = RibbonServices.RibbonPaletteSet.RibbonControl;
            foreach (var tab in root.TabRibbons)
            {
                RibbonTab rt = new RibbonTab();
                rt.Title = tab.Name;
                rt.Id = tab.Id;
                //rc.Tabs.Add(rt);
                rc.Tabs.Insert(0, rt);
                rt.IsActive = tab.IsActive;
                rt.IsActive = false;
                rt.Name = "BridgeWise";
                rt.AllowTearOffContextualPanels = false;

                foreach (var panel in tab.panels)
                {
                    RibbonPanelSource rps = new RibbonPanelSource();
                    rps.Title = panel.Name;
                    RibbonPanel rp = new RibbonPanel();
                    rp.Source = rps;
                    rt.Panels.Add(rp);
                    foreach (var button in panel.buttons)
                    {
                        if (button.ButType=="Separator")
                        {
                            RibbonSeparator rs = new RibbonSeparator();
                            rs.SeparatorStyle = RibbonSeparatorStyle.Invisible;
                            rp.Source.Items.Add(rs);
                        }
                        else if (button.ButType == "Button")
                        {
                            RibbonButton rb = new RibbonButton();
                            rb.Text = button.Name;
                            rb.CommandParameter = button.Cmd;
                            rb.CommandHandler = new AutoCadRunCmd();
                            rb.Image = ImageHelper.GetImage(button.Image);
                            rb.Description = button.Description;
                            rb.ShowImage = true;
                            rb.ShowText = button.IsText;
                            if (button.IsText)
                            {
                                rb.Orientation = System.Windows.Controls.Orientation.Vertical;
                            }

                            rb.LargeImage = ImageHelper.GetImage(button.LargeImage);
                            rb.Size = button.IsLarge ? RibbonItemSize.Large : RibbonItemSize.Standard;

                            rp.Source.Items.Add(rb);
                        }
                        else if (button.ButType == "NewLine")
                        {
                            RibbonRowBreak rrb = new RibbonRowBreak();
                            rp.Source.Items.Add(rrb);
                        }
                    }
                }
            }
        }
        catch (Exception)
        {                
            throw;
        }        
    }

为什么?有人可以帮助我。谢谢!!! enter image description here

0 个答案:

没有答案