1. 程式人生 > >DevExpress_常用控制元件學習筆記02_RibbonControl

DevExpress_常用控制元件學習筆記02_RibbonControl

1.3 RibbonControl

1.3.1 常用操作

1、如何程式碼顯示選中的頁

          ribbonControl1.SelectedPage = ribbonPage2;

2、如何繫結ApplicationMenus和PopupMenu:

          通過ribbonControl上的PopuContextMenu進行繫結;

1.3.2  How to: Create a RibbonControl in Code

如何程式碼建立RibbonContrl

效果如下:

程式碼如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;

using DevExpress.XtraBars.Ribbon;

using DevExpress.XtraBars;

namespace DXApplication_1
{
	public partial class RibbonCtrolForm2 : DevExpress.XtraEditors.XtraForm
	{
		public RibbonCtrolForm2()
		{
			InitializeComponent();
		}

		private void RibbonCtrolForm2_Load(object sender, EventArgs e)
		{
			// Create a RibbonControl

			RibbonControl RibbonControl = new RibbonControl();

			this.Controls.Add(RibbonControl);

			// Assign the image collection that will provide images for bar items.

			RibbonControl.Images = imageCollection1;
			
			// Create a Ribbon page.
			RibbonPage page1 = new RibbonPage("Home");

			// Create a Ribbon page group.
			RibbonPageGroup group1 = new RibbonPageGroup("File");
			// Create another Ribbon page group.
			RibbonPageGroup group2 = new RibbonPageGroup("File 2");
			
			// Create a button item using the CreateButton method.
			// The created item is automatically added to the item collection of the RibbonControl.
			BarButtonItem itemOpen = RibbonControl.Items.CreateButton("Open...");
			itemOpen.ImageIndex = 4;
			itemOpen.ItemClick += new ItemClickEventHandler(itemOpen_ItemClick);
			
			// Create a button item using its constructor.
			// The constructor automatically adds the created item to the RibbonControl's item collection.
			BarButtonItem itemClose = new BarButtonItem(RibbonControl.Manager, "Close");
			itemClose.ImageIndex = 3;
			itemClose.ItemClick += new ItemClickEventHandler(itemClose_ItemClick);



			// Create a button item using the default constructor.
			BarButtonItem itemPrint = new BarButtonItem();
			// Manually add the created item to the item collection of the RibbonControl.
			RibbonControl.Items.Add(itemPrint);
			itemPrint.Caption = "Search";
			itemPrint.ImageIndex = 2;
			itemPrint.ItemClick += new ItemClickEventHandler(itemPrint_ItemClick);



			// Add the created items to the group using the AddRange method. 
			// This method will create bar item links for the items and then add the links to the group.
			group1.ItemLinks.AddRange(new BarItem[] { itemOpen, itemClose, itemPrint });
			// Add the Open bar item to the second group.
			group2.ItemLinks.Add(itemOpen);

			// Add the created groups to the page.
			page1.Groups.Add(group1);
			page1.Groups.Add(group2);

			// Add the page to the RibbonControl.
			RibbonControl.Pages.Add(page1);
		}

		void itemPrint_ItemClick(object sender, ItemClickEventArgs e)
		{
		}

		void itemClose_ItemClick(object sender, ItemClickEventArgs e)
		{
		}

		void itemOpen_ItemClick(object sender, ItemClickEventArgs e)
		{
		}
	}
}

1.4 GalleryContral

控制元件可顯示影象,同時讓你將它們分類。 asdf

效果圖:

例1:

using DevExpress.XtraBars.Ribbon;

using DevExpress.Utils;

using DevExpress.Utils.Drawing;



GalleryControl gc = new GalleryControl();

gc.Dock = DockStyle.Fill;

this.Controls.Add(gc);



Image im1 = Image.FromFile("c:\\Images\\BMW.jpg");

Image im2 = Image.FromFile("c:\\Images\\Ford.jpg");

Image im3 = Image.FromFile("c:\\Images\\MercedecBenz.jpg");

Image im4 = Image.FromFile("c:\\Images\\AnneDodsworth.jpg");

Image im5 = Image.FromFile("c:\\Images\\HannaMoos.jpg");

Image im6 = Image.FromFile("c:\\Images\\JanetLeverling.jpg");



gc.Gallery.ItemImageLayout = ImageLayoutMode.ZoomInside;

gc.Gallery.ImageSize = new Size(120, 90);

gc.Gallery.ShowItemText = true;



GalleryItemGroup group1 = new GalleryItemGroup();

group1.Caption = "Cars";

gc.Gallery.Groups.Add(group1);



GalleryItemGroup group2 = new GalleryItemGroup();

group2.Caption = "People";

gc.Gallery.Groups.Add(group2);



group1.Items.Add(new GalleryItem(im1, "BMW", ""));

group1.Items.Add(new GalleryItem(im2, "Ford", ""));

group1.Items.Add(new GalleryItem(im3, "Mercedec-Benz", ""));



group2.Items.Add(new GalleryItem(im4, "Anne Dodsworth", ""));

group2.Items.Add(new GalleryItem(im5, "Hanna Moos", ""));

group2.Items.Add(new GalleryItem(im6, "Janet Leverling", ""));

1.5 GroupControl控制元件

實現效果如圖:

該控制元件的ShowCaption屬性,是bool型別,當其值為false時,表示不顯示標題;

該控制元件的CaptionImage屬性可以設定標題前的圖片顯示,例如:

 this.groupControl1.CaptionImage=global::WindowsDev.Properties.Resources.additem_32x32;

該控制元件的LookAndFeel屬性下的UseDefaultLookAndFeel屬性控制是否可以對黨情的面板進行設定,為bool型別;

該控制元件的BorderStyle屬性控制控制元件的邊框樣式:

如第一個圖的效果程式碼如下:            

groupControl1.BackColor = Color.LightGray;

            groupControl1.LookAndFeel.UseDefaultLookAndFeel =false ;

            groupControl1.ShowCaption = true;

      groupControl1.BorderStyle=  DevExpress.XtraEditors.Controls.BorderStyles.Simple;

1.5 SplitContainerControl控制元件

實現效果如圖:

該控制元件的PanelVisibility屬性控制面板Panel1和麵板Panel2的可見性,

程式碼如下:

splitContainerControl2.PanelVisibility=

DevExpress.XtraEditors.SplitPanelVisibility.Panel1;//僅Panel1可見

splitContainerControl2.PanelVisibility=

DevExpress.XtraEditors.SplitPanelVisibility.Both;//Panel1、Panel2都可見

該控制元件的Horizontal屬性控制面板是成左右分割還是上下分割,其值為true表示成左右分割佈局;

該控制元件的LookAndFeel屬性提供了改變控制元件外觀的許可權,該屬性下的UseDefaultLookAndFeel為false時,可以通過該控制元件的Appearance屬性對外觀進行設定;

1.6  AlertControl控制元件 

   AlertControl控制元件能改在應用程式中顯示警告視窗,通常該警告視窗顯示為一個短的事件並自動關閉可以在該視窗中指定標題、文字、影象,並定義相應的處理事件。

實現效果如圖:

實現程式碼如下:

using DevExpress.XtraBars.Alerter;



// Create a regular custom button.

AlertButton btn1 = new AlertButton(Image.FromFile(@"c:\folder-16x16.png"));

btn1.Hint = "Open file";

btn1.Name = "buttonOpen";

// Create a check custom button.

AlertButton btn2 = new AlertButton(Image.FromFile(@"c:\clock-16x16.png"));

btn2.Style = AlertButtonStyle.CheckButton;

btn2.Down = true;

btn2.Hint = "Alert On";

btn2.Name = "buttonAlert";

// Add buttons to the AlertControl and subscribe to the events to process button clicks

alertControl1.Buttons.Add(btn1);

alertControl1.Buttons.Add(btn2);

alertControl1.ButtonClick+=new AlertButtonClickEventHandler(alertControl1_ButtonClick);

alertControl1.ButtonDownChanged += 

    new AlertButtonDownChangedEventHandler(alertControl1_ButtonDownChanged);



// Show a sample alert window.

AlertInfo info = new AlertInfo("New Window", "Text");

alertControl1.Show(this, info);



void alertControl1_ButtonDownChanged(object sender, 

AlertButtonDownChangedEventArgs e) {

    if (e.ButtonName == "buttonOpen") {

        //...

    }

}



void alertControl1_ButtonClick(object sender, AlertButtonClickEventArgs e) {

    if (e.ButtonName == "buttonAlert") {

        //...

    }

}

1.7  XtraTabControl控制元件

1、該控制元件的TabPage屬性:以集合的形式儲存page頁;

使用程式碼新增頁:

using DevExpress.XtraTab;

        XtraTabPage page = new XtraTabPage();

            page.Text = "aa";

           xtraTabControl1.TabPages.Add(page);

2、該控制元件的MultiLine屬性:把其值設為true;當可用空間不適應顯示的頁標題的長度時,允許頁頭進行多行顯示.

3、SelectedTabPage屬性:設定預設情況下顯示的頁;

4、ClosePageButttonShowMode屬性:該屬性控制那一頁上顯示關閉按鈕,示例程式碼如下:

  this.xtraTabControl1.ClosePageButtonShowMode = DevExpress.XtraTab.ClosePageButtonShowMode.InActiveTabPageAndTabControlHeader;

效果如圖:

5、HeaderButton屬性:可以通過該屬性設定該控制元件右上角顯示的按鈕,可以新增 Close, Next 和Prev buttons.

1.8 TitleControl控制元件

該控制元件是根據Windows 8的使用者介面設計的,可以輕鬆地把各個控制塊整合到窗體上。

1.IndertBetweenGroups屬性:控制兩個Group之間的間距;

2.該控制元件通過TileGroup和TileItems新增Group和Item;

3、該控制元件通過TileControl.ItemClick事件執行選中的Item後執行的操作;

示例程式碼1:  

using DevExpress.XtraEditors;

 TileItem newTile = new TileItem();

  tileControl1.Groups.Add(new TileGroup());

  tileControl1.Groups[0].Items.Add(newTile);

示例程式碼2: 

TileItem newTile = new TileItem();

            //First Frame - Image only

            TileItemFrame logoDXFrame = new TileItemFrame();

            TileItemElement logoEl = new TileItemElement();

            logoEl.Image = global::WindowsDev.Properties.Resources.additem_32x32; logoEl.ImageAlignment = TileItemContentAlignment.MiddleCenter;

            logoDXFrame.Elements.Add(logoEl);

            logoDXFrame.Elements[0].AnimateTransition= DevExpress.Utils.DefaultBoolean.True;

            //Second Frame - Text only

            TileItemFrame mottoDXFrame = new TileItemFrame();

            TileItemElement mottoEl = new TileItemElement();

            mottoEl.Text = "<Size=+2><Color=Sienna><b>Let's see what develops.</b></Color></Size>";

            mottoEl.TextAlignment = TileItemContentAlignment.MiddleCenter;

            mottoDXFrame.Elements.Add(mottoEl);

            mottoDXFrame.Elements[0].AnimateTransition= DevExpress.Utils.DefaultBoolean.True;

            //Global Tile Item Settings

            newTile.Frames.Add(logoDXFrame);

            newTile.Frames.Add(mottoDXFrame);

            newTile.Appearance.BackColor = System.Drawing.Color.Bisque;

            newTile.Appearance.BackColor2 = System.Drawing.Color.SandyBrown;

            newTile.Appearance.GradientMode= System.Drawing.Drawing2D.LinearGradientMode.BackwardDiagonal;

            newTile.Appearance.BorderColor = System.Drawing.Color.Bisque;

            newTile.AllowHtmlText = DevExpress.Utils.DefaultBoolean.True;

            newTile.FrameAnimationInterval = 2500;

            newTile.IsLarge = true;

            tileControl1.Groups.Add(new TileGroup());

            tileControl1.Groups[0].Items.Add(newTile);

            newTile.StartAnimation();

效果圖如下:

1.9 RadialMenu控制元件

該控制元件是圓形選單,可以以選單的形式新增選單項;

該控制元件的ShowPopup(Point point)方法用於顯示圓形選單;