明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2166|回复: 8

[界面] 按钮摆放问题,很简单,希望大侠指导

[复制链接]
发表于 2015-6-5 08:15:35 | 显示全部楼层 |阅读模式
想做成想AutoCAD2010里这样的按钮,但我做成都是这样的,没有分成多行,怎么改都没有实现,哪位大侠做过,给指点一下,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2015-6-5 09:15:18 | 显示全部楼层
分成多行和设计的图例没有关系,这种效果要复制一个像截图中面板对话框启动器再做修改。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2015-6-5 09:41:03 | 显示全部楼层
大侠,我自己做的按钮,是用代码写的,不是用cui文件做的,你说的,我不怎么明白,能说的具体点吗
RibbonPanelSource sourcePanel2 = new RibbonPanelSource();
            sourcePanel2.Title = "所有图例";//Ribbon面板的标题
            
            RibbonPanel ribPanel2 = new RibbonPanel();//创建Ribbon面板
            ribPanel2.CanToggleOrientation = true;
            //ribPanel2.Tab.
            //ribPanel2.ResizeStyle = RibbonResizeStyles.NeverResizeItemWidth;
            ribPanel2.Source = sourcePanel2;//设置Ribbon面板的内容            
            tab.Panels.Add(ribPanel2);//将Ribbon面板添加到选项卡中

            RibbonToggleButton ribTogBtn1 = new RibbonToggleButton();
            ribTogBtn1.ShowImage = true;
            ribTogBtn1.Image = ConvertDrawingImage2MediaImageSource(Res.plus);
            ribTogBtn1.LargeImage = ConvertDrawingImage2MediaImageSource(Res.plus);
            ribTogBtn1.Size = RibbonItemSize.Standard;
            ribTogBtn1.Orientation = System.Windows.Controls.Orientation.Horizontal;
            ribTogBtn1.IsSelectedForEditing = false;
            sourcePanel2.Items.Add(ribTogBtn1);

            RibbonToggleButton ribTogBtn2 = new RibbonToggleButton();
            ribTogBtn2.ShowImage = true;
            
            ribTogBtn2.Image = ConvertDrawingImage2MediaImageSource(Res.plus);
            ribTogBtn2.LargeImage = ConvertDrawingImage2MediaImageSource(Res.plus);
            ribTogBtn2.Size = RibbonItemSize.Standard;
            ribTogBtn1.Orientation = System.Windows.Controls.Orientation.Horizontal;
            sourcePanel2.Items.Add(ribTogBtn2);

            RibbonToggleButton ribTogBtn3 = new RibbonToggleButton();
            ribTogBtn3.ShowImage = true;
            ribTogBtn3.Image = ConvertDrawingImage2MediaImageSource(Res.plus);
            ribTogBtn3.LargeImage = ConvertDrawingImage2MediaImageSource(Res.plus);
            ribTogBtn3.Size = RibbonItemSize.Standard;
            ribTogBtn3.Orientation = System.Windows.Controls.Orientation.Horizontal;
            sourcePanel2.Items.Add(ribTogBtn3);
我是这么写的
 楼主| 发表于 2015-6-5 11:05:45 | 显示全部楼层
有人会吗,指导小妹一下下呗
发表于 2015-6-5 11:13:02 | 显示全部楼层
添加换行
row.Items.Add(New RibbonRowBreak)
 楼主| 发表于 2015-6-5 11:21:04 | 显示全部楼层
哥哥,能说的具体点吗,小妹是个新手啊
 楼主| 发表于 2015-6-5 15:40:00 | 显示全部楼层
河伯 发表于 2015-6-5 11:13
添加换行
row.Items.Add(New RibbonRowBreak)

问题解决了,谢谢,小妹很感谢。
发表于 2018-6-28 09:37:50 | 显示全部楼层
dpec1982 发表于 2015-6-5 15:40
问题解决了,谢谢,小妹很感谢。

小妹你的代码怎么用
发表于 2019-9-5 11:36:15 | 显示全部楼层
本帖最后由 Leo1980 于 2019-9-5 11:38 编辑

这个资料参考一下





  1. /*
  2. *   RibbonControl
  3. *      -- RibbonTab
  4. *           --
  5. *
  6. *
  7. *
  8. *
  9. *
  10. *
  11. *
  12. *
  13. *
  14. *
  15. *
  16. * */



  17. using System;
  18. using System.Collections.Generic;
  19. using System.Linq;
  20. using System.Text;
  21. using System.Drawing;
  22. using System.Drawing.Imaging;
  23. using System.IO;
  24. using System.Windows.Media.Imaging;
  25. using System.Reflection;
  26. using System.Windows.Input;
  27. using System.Xml;


  28. using Autodesk.AutoCAD.Runtime;
  29. using Autodesk.AutoCAD.ApplicationServices;
  30. using Autodesk.AutoCAD.DatabaseServices;
  31. using Autodesk.AutoCAD.Geometry;
  32. using Autodesk.AutoCAD.EditorInput;
  33. using Autodesk.AutoCAD.GraphicsInterface;

  34. /////////////UI///////////////
  35. using Autodesk.Windows;
  36. using Autodesk.AutoCAD.Ribbon;


  37. namespace Acad2012
  38. {

  39.     public class RibbonTest
  40.     {
  41.         //Autodesk.AutoCAD.ApplicationServices.Application acadApp = null;

  42.         public RibbonCombo pan1ribcombo1 = new RibbonCombo();
  43.         public RibbonCombo pan3ribcombo = new RibbonCombo();


  44.         public RibbonTest()
  45.         {
  46.             //acadApp = ;
  47.             pan3ribcombo.CurrentChanged += new System.EventHandler<RibbonPropertyChangedEventArgs>(pan3ribcombo_CurrentChanged);
  48.         }

  49.         private void pan3ribcombo_CurrentChanged(object sender, RibbonPropertyChangedEventArgs e)
  50.         {
  51.             RibbonButton but = pan3ribcombo.Current as RibbonButton;
  52.             Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog(but.Text);
  53.         }

  54.         [CommandMethod("MyRibbonCombotest")]
  55.         public void RibbonSplitButtontest()
  56.         {
  57.             RibbonButton commandlinebutton = new RibbonButton();
  58.             commandlinebutton.Text = "Newly Added Button with command: MyRibbonTestCombo";
  59.             commandlinebutton.ShowText = true;
  60.             commandlinebutton.ShowImage = true;
  61.             commandlinebutton.Image = Images.getBitmap(Resource.cmd16);
  62.             commandlinebutton.LargeImage = Images.getBitmap(Resource.cmd32);
  63.             commandlinebutton.CommandHandler = new RibbonCommandHandler();
  64.             pan1ribcombo1.Items.Add(commandlinebutton);
  65.             pan1ribcombo1.Current = commandlinebutton;

  66.             
  67.         }

  68.         [CommandMethod("MyRibbon")]
  69.         public void MyRibbon()
  70.         {
  71.             Autodesk.Windows.RibbonControl ribbonControl = Autodesk.Windows.ComponentManager.Ribbon;
  72.             RibbonTab Tab = new RibbonTab();
  73.             Tab.Title = "Autodesk .NET forum Ribbon Sample";
  74.             Tab.Id = "RibbonSample_TAB_ID";

  75.             ribbonControl.Tabs.Add(Tab);

  76.             // create Ribbon panels
  77.             Autodesk.Windows.RibbonPanelSource panel1Panel = new RibbonPanelSource();
  78.             panel1Panel.Title = "Panel1";
  79.             RibbonPanel Panel1 = new RibbonPanel();
  80.             Panel1.Source = panel1Panel;
  81.             Tab.Panels.Add(Panel1);

  82.             RibbonButton pan1button1 = new RibbonButton();
  83.             pan1button1.Text = "Button1";
  84.             pan1button1.ShowText = true;
  85.             pan1button1.ShowImage = true;
  86.             pan1button1.Image = Images.getBitmap(Resource.cmd16);
  87.             pan1button1.LargeImage = Images.getBitmap(Resource.cmd32);
  88.             pan1button1.Orientation = System.Windows.Controls.Orientation.Vertical;
  89.             pan1button1.Size = RibbonItemSize.Large;
  90.             pan1button1.CommandHandler = new RibbonCommandHandler();

  91.             RibbonButton pan1button2 = new RibbonButton();
  92.             pan1button2.Text = "Button2";
  93.             pan1button2.ShowText = true;
  94.             pan1button2.ShowImage = true;
  95.             pan1button2.Image = Images.getBitmap(Resource.cmd16);
  96.             pan1button2.LargeImage = Images.getBitmap(Resource.cmd32);
  97.             pan1button2.CommandHandler = new RibbonCommandHandler();

  98.             RibbonButton pan1button3 = new RibbonButton();
  99.             pan1button3.Text = "Button3";
  100.             pan1button3.ShowText = true;
  101.             pan1button3.ShowImage = true;
  102.             pan1button3.Image = Images.getBitmap(Resource.cmd16);
  103.             pan1button3.LargeImage = Images.getBitmap(Resource.cmd32);
  104.             pan1button3.CommandHandler = new RibbonCommandHandler();

  105.             // Set te propperties for the RibbonCombo
  106.             // Te ribboncombo control does not listen to the command handler
  107.             pan1ribcombo1.Text = " ";
  108.             pan1ribcombo1.ShowText = true;
  109.             pan1ribcombo1.MinWidth = 150;

  110.             RibbonRowPanel pan1row1 = new RibbonRowPanel();
  111.             pan1row1.Items.Add(pan1button2);
  112.             pan1row1.Items.Add(new RibbonRowBreak());
  113.             pan1row1.Items.Add(pan1button3);
  114.             pan1row1.Items.Add(new RibbonRowBreak());
  115.             pan1row1.Items.Add(pan1ribcombo1);

  116.             panel1Panel.Items.Add(pan1button1);
  117.             panel1Panel.Items.Add(new RibbonSeparator());
  118.             panel1Panel.Items.Add(pan1row1);

  119.             RibbonPanelSource panel2Panel = new RibbonPanelSource();
  120.             panel2Panel.Title = "Panel2";
  121.             RibbonPanel panel2 = new RibbonPanel();
  122.             panel2.Source = panel2Panel;
  123.             Tab.Panels.Add(panel2);

  124.             RibbonSplitButton pan2splitButton = new RibbonSplitButton();
  125.             pan2splitButton.Text = "SplitButton"; //Required not to crash AutoCAD when using cmd locators
  126.             pan2splitButton.CommandHandler = new RibbonCommandHandler();
  127.             pan2splitButton.ShowText = true;
  128.             pan2splitButton.ShowImage = true;
  129.             pan2splitButton.Image = Images.getBitmap(Resource.cmd16);
  130.             pan2splitButton.LargeImage = Images.getBitmap(Resource.cmd32);
  131.             pan2splitButton.IsSplit = true;
  132.             pan2splitButton.Size = RibbonItemSize.Large;

  133.             RibbonButton pan2button1 = new RibbonButton();
  134.             pan2button1.Text = "Button1";
  135.             pan2button1.ShowText = true;
  136.             pan2button1.ShowImage = true;
  137.             pan2button1.Image = Images.getBitmap(Resource.cmd16);
  138.             pan2button1.LargeImage = Images.getBitmap(Resource.cmd32);
  139.             pan2button1.Size = RibbonItemSize.Large;
  140.             pan2button1.Orientation = System.Windows.Controls.Orientation.Vertical;
  141.             pan2button1.CommandHandler = new RibbonCommandHandler();

  142.             RibbonButton pan2button2 = new RibbonButton();
  143.             pan2button2.Text = "Button2";
  144.             pan2button2.ShowText = true;
  145.             pan2button2.ShowImage = true;
  146.             pan2button2.Image = Images.getBitmap(Resource.cmd16);
  147.             pan2button2.LargeImage = Images.getBitmap(Resource.cmd32);
  148.             pan2button2.CommandHandler = new RibbonCommandHandler();

  149.             RibbonButton pan2button3 = new RibbonButton();
  150.             pan2button3.Text = "Button3";
  151.             pan2button3.ShowText = true;
  152.             pan2button3.ShowImage = true;
  153.             pan2button3.Image = Images.getBitmap(Resource.cmd16);
  154.             pan2button3.LargeImage = Images.getBitmap(Resource.cmd32);
  155.             pan2button3.CommandHandler = new RibbonCommandHandler();

  156.             pan2splitButton.Items.Add(pan2button1);
  157.             pan2splitButton.Items.Add(pan2button2);

  158.             RibbonRowPanel pan2row1 = new RibbonRowPanel();
  159.             pan2row1.Items.Add(pan2button2);
  160.             pan2row1.Items.Add(new RibbonRowBreak());
  161.             pan2row1.Items.Add(pan2button3);
  162.             pan2row1.Items.Add(new RibbonRowBreak());
  163.             pan2row1.Items.Add(new RibbonCombo());

  164.             panel2Panel.Items.Add(pan2splitButton);
  165.             panel2Panel.Items.Add(pan2row1);

  166.             RibbonPanelSource panel3Panel = new RibbonPanelSource();
  167.             panel3Panel.Title = "Panel3";
  168.             RibbonPanel panel3 = new RibbonPanel();
  169.             panel3.Source = panel3Panel;
  170.             Tab.Panels.Add(panel3);

  171.             RibbonButton pan3button1 = new RibbonButton();
  172.             pan3button1.Text = "Button1";
  173.             pan3button1.ShowText = true;
  174.             pan3button1.ShowImage = true;
  175.             pan3button1.Image = Images.getBitmap(Resource.cmd16);
  176.             pan3button1.LargeImage = Images.getBitmap(Resource.cmd32);
  177.             pan3button1.Size = RibbonItemSize.Large;
  178.             pan3button1.Orientation = System.Windows.Controls.Orientation.Vertical;
  179.             pan3button1.CommandHandler = new RibbonCommandHandler();

  180.             RibbonButton pan3button2 = new RibbonButton();
  181.             pan3button2.Text = "Button2";
  182.             pan3button2.ShowText = true;
  183.             pan3button2.ShowImage = true;
  184.             pan3button2.Image = Images.getBitmap(Resource.cmd16);
  185.             pan3button2.LargeImage = Images.getBitmap(Resource.cmd32);
  186.             pan3button2.Size = RibbonItemSize.Large;
  187.             pan3button2.Orientation = System.Windows.Controls.Orientation.Vertical;
  188.             pan3button2.CommandHandler = new RibbonCommandHandler();

  189.             RibbonButton pan3button3 = new RibbonButton();
  190.             pan3button3.Text = "Button3";
  191.             pan3button3.ShowText = true;
  192.             pan3button3.ShowImage = true;
  193.             pan3button3.Image = Images.getBitmap(Resource.cmd16);
  194.             pan3button3.LargeImage = Images.getBitmap(Resource.cmd32);
  195.             pan3button3.CommandHandler = new RibbonCommandHandler();

  196.             RibbonButton pan3button4 = new RibbonButton();
  197.             pan3button4.Text = "Button4";
  198.             pan3button4.ShowText = true;
  199.             pan3button4.ShowImage = true;
  200.             pan3button4.Image = Images.getBitmap(Resource.cmd16);
  201.             pan3button4.LargeImage = Images.getBitmap(Resource.cmd32);
  202.             pan3button4.CommandHandler = new RibbonCommandHandler();

  203.             RibbonButton pan3button5 = new RibbonButton();
  204.             pan3button5.Text = "Button5";
  205.             pan3button5.ShowText = true;
  206.             pan3button5.ShowImage = true;
  207.             pan3button5.Image = Images.getBitmap(Resource.cmd16);
  208.             pan3button5.LargeImage = Images.getBitmap(Resource.cmd32);
  209.             pan3button5.CommandHandler = new RibbonCommandHandler();

  210.             RibbonRowPanel pan3row1 = new RibbonRowPanel();
  211.             pan3row1.Items.Add(pan3button3);
  212.             pan3row1.Items.Add(new RibbonRowBreak());
  213.             pan3row1.Items.Add(pan3button4);
  214.             pan3row1.Items.Add(new RibbonRowBreak());
  215.             pan3row1.Items.Add(pan3button5);

  216.             panel3Panel.Items.Add(pan3button1);
  217.             panel3Panel.Items.Add(pan3row1);

  218.             RibbonPanelSource pan4Panel = new RibbonPanelSource();
  219.             pan4Panel.Title = "Panel4";
  220.             RibbonPanel Panel4 = new RibbonPanel();
  221.             Panel4.Source = pan4Panel;
  222.             Tab.Panels.Add(Panel4);

  223.             RibbonButton pan4button1 = new RibbonButton();
  224.             pan4button1.Text = "Button1";
  225.             pan4button1.ShowText = true;
  226.             pan4button1.ShowImage = true;
  227.             pan4button1.Image = Images.getBitmap(Resource.cmd16);
  228.             pan4button1.LargeImage = Images.getBitmap(Resource.cmd32);
  229.             pan4button1.Size = RibbonItemSize.Large;
  230.             pan4button1.Orientation = System.Windows.Controls.Orientation.Vertical;
  231.             pan4button1.CommandHandler = new RibbonCommandHandler();

  232.             RibbonButton pan4button2 = new RibbonButton();
  233.             pan4button2.Text = "Button2";
  234.             pan4button2.ShowText = true;
  235.             pan4button2.ShowImage = true;
  236.             pan4button2.Image = Images.getBitmap(Resource.cmd16);
  237.             pan4button2.LargeImage = Images.getBitmap(Resource.cmd32);
  238.             pan4button2.CommandHandler = new RibbonCommandHandler();

  239.             RibbonButton pan4button3 = new RibbonButton();
  240.             pan4button3.Text = "Button3";
  241.             pan4button3.ShowText = true;
  242.             pan4button3.ShowImage = true;
  243.             pan4button3.Image = Images.getBitmap(Resource.cmd16);
  244.             pan4button3.LargeImage = Images.getBitmap(Resource.cmd32);
  245.             pan4button3.CommandHandler = new RibbonCommandHandler();

  246.             RibbonButton pan4button4 = new RibbonButton();
  247.             pan4button4.Text = "Button4";
  248.             pan4button4.ShowText = true;
  249.             pan4button4.ShowImage = true;
  250.             pan4button4.Image = Images.getBitmap(Resource.cmd16);
  251.             pan4button4.LargeImage = Images.getBitmap(Resource.cmd32);
  252.             pan4button4.Size = RibbonItemSize.Large;
  253.             pan4button4.Orientation = System.Windows.Controls.Orientation.Vertical;
  254.             pan4button4.CommandHandler = new RibbonCommandHandler();

  255.             RibbonButton pan4ribcombobutton1 = new RibbonButton();
  256.             pan4ribcombobutton1.Text = "Button1";
  257.             pan4ribcombobutton1.ShowText = true;
  258.             pan4ribcombobutton1.ShowImage = true;
  259.             pan4ribcombobutton1.Image = Images.getBitmap(Resource.cmd16);
  260.             pan4ribcombobutton1.LargeImage = Images.getBitmap(Resource.cmd32);
  261.             pan4ribcombobutton1.CommandHandler = new RibbonCommandHandler();

  262.             RibbonButton pan4ribcombobutton2 = new RibbonButton();
  263.             pan4ribcombobutton2.Text = "Button2";
  264.             pan4ribcombobutton2.ShowText = true;
  265.             pan4ribcombobutton2.ShowImage = true;
  266.             pan4ribcombobutton2.Image = Images.getBitmap(Resource.cmd16);
  267.             pan4ribcombobutton2.LargeImage = Images.getBitmap(Resource.cmd32);
  268.             pan4ribcombobutton2.CommandHandler = new RibbonCommandHandler();

  269.             pan3ribcombo.Width = 150;
  270.             pan3ribcombo.Items.Add(pan4ribcombobutton1);
  271.             pan3ribcombo.Items.Add(pan4ribcombobutton2);
  272.             pan3ribcombo.Current = pan4ribcombobutton1;

  273.             RibbonRowPanel vvorow1 = new RibbonRowPanel();
  274.             vvorow1.Items.Add(pan4button2);
  275.             vvorow1.Items.Add(new RibbonRowBreak());
  276.             vvorow1.Items.Add(pan4button3);
  277.             vvorow1.Items.Add(new RibbonRowBreak());
  278.             vvorow1.Items.Add(pan3ribcombo);

  279.             pan4Panel.Items.Add(pan4button1);
  280.             pan4Panel.Items.Add(vvorow1);
  281.             pan4Panel.Items.Add(new RibbonSeparator());
  282.             pan4Panel.Items.Add(pan4button4);

  283.             Tab.IsActive = true;
  284.         }

  285.         public class RibbonCommandHandler : System.Windows.Input.ICommand
  286.         {
  287.             public bool CanExecute(object parameter)
  288.             {
  289.                 return true;
  290.             }

  291.             public event EventHandler CanExecuteChanged;

  292.             public void Execute(object parameter)
  293.             {
  294.                 Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;

  295.                 if (parameter is RibbonButton)
  296.                 {
  297.                     RibbonButton button = parameter as RibbonButton;
  298.                     doc.Editor.WriteMessage("\nRibbonButton Executed: " + button.Text + "\n");
  299.                 }
  300.             }
  301.         }

  302.         public class Images
  303.         {
  304.             public static BitmapImage getBitmap(Bitmap image)
  305.             {
  306.                 MemoryStream stream = new MemoryStream();
  307.                 image.Save(stream, ImageFormat.Png);
  308.                 BitmapImage bmp = new BitmapImage();
  309.                 bmp.BeginInit();
  310.                 bmp.StreamSource = stream;
  311.                 bmp.EndInit();

  312.                 return bmp;
  313.             }
  314.         }
  315.     }



  316. }



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 07:11 , Processed in 0.197838 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表