XtraForm
DevExpress的皮膚、外觀和感覺以及 Skinning techniques只能應(yīng)用于DevExpress控件,為了在整個(gè)應(yīng)用程序中實(shí)現(xiàn)一致的UI,標(biāo)準(zhǔn)的WinForms對(duì)話框、表單和消息框必須被它們的DevExpress對(duì)應(yīng)物所取代。本文專門討論替換默認(rèn)項(xiàng)目表單的XtraForm。
向項(xiàng)目中添加XtraForm
以XtraForm作為主要表單啟動(dòng)項(xiàng)目的最快方法是利用UI-ready DevExpress模板庫,所有這些模板都是基于DevExpress表單的,具體來說,基于工具欄的模板和“空白應(yīng)用程序”模板使用XtraForms。
要添加新的XtraForms,請(qǐng)?jiān)赩isual Studio的解決方案資源管理器窗口中右鍵單擊項(xiàng)目,然后選擇“Add DevExpress Item | New Item…”,這將調(diào)用帶有新項(xiàng)目模板的模板庫,選擇“表單”模板,輸入表單名稱,點(diǎn)擊“添加項(xiàng)目”。
將標(biāo)準(zhǔn)表格轉(zhuǎn)換為 Xtra表格
要用XtraForms替換現(xiàn)有的默認(rèn)表單,請(qǐng)調(diào)用表單智能標(biāo)簽并選擇Convert to Skinable Form選項(xiàng)。
要在代碼中做同樣的事情,將表單從 System.Windows.Forms.Form派生的基類更改為DevExpress.XtraEditors.XtraForm,還需要在項(xiàng)目中包含DevExpress.XtraEditors庫。
C# :
using DevExpress.XtraEditors; namespace DXApplication1 { public partial class Form1 : XtraForm { public Form1() { InitializeComponent(); } } }
VB.NET:
Imports DevExpress.XtraEditors Namespace DXApplication1 Partial Public Class Form1 Inherits XtraForm Public Sub New() InitializeComponent() End Sub End Class End Namespace
將皮膚應(yīng)用到表單標(biāo)題欄
如果您使用DefaultLookAndFeel組件來為應(yīng)用程序添加皮膚,那么所需的所有代碼行都將自動(dòng)添加到Project.cs文件的Main()方法中,在這種情況下,如果不執(zhí)行任何操作,表單標(biāo)題欄(以及此表單上的所有控件)將根據(jù)活動(dòng)外觀繪制。
否則,如果您在代碼中應(yīng)用皮膚,請(qǐng)手動(dòng)調(diào)用靜態(tài)SkinManager.EnableFormSkins或SkinManager.EnableMdiFormSkins方法。
C# :
using DevExpress.Skins; // ... SkinManager.EnableFormSkins(); SkinManager.EnableMdiFormSkins();
VB.NET:
Imports DevExpress.Skins; ' ... SkinManager.EnableFormSkins() SkinManager.EnableMdiFormSkins()
發(fā)光和陰影效果
XtraForm.FormBorderEffect屬性允許您激活表單的發(fā)光或陰影效果。
覆蓋表單的onshow方法,并將FormBorderEffect屬性設(shè)置為FormBorderEffect.Shadow來啟用表單陰影,給FormShadow.Opacity屬性賦0到255的字節(jié)值,來指定陰影的不透明度。
C# :
public Form1() { InitializeComponent(); this.FormBorderEffect = DevExpress.XtraEditors.FormBorderEffect.Shadow; } // Overrides the 'OnShown' method to specify shadow settings. protected override void OnShown(EventArgs e) { base.OnShown(e); this.FormShadow.Opacity = 120; FormShadow.AllowResizeViaShadows = true; }
VB.NET:
Public Sub New() InitializeComponent() Me.FormBorderEffect = DevExpress.XtraEditors.FormBorderEffect.Shadow End Sub ' Overrides the 'OnShown' method to specify shadow settings. Protected Overrides Sub OnShown(ByVal e As EventArgs) MyBase.OnShown(e) Me.FormShadow.Opacity = 120 FormShadow.AllowResizeViaShadows = True End Sub
當(dāng)您將 XtraForm.FormBorderEffect屬性設(shè)置為 FormBorderEffect.Glow時(shí),表單發(fā)光效果被激活,此設(shè)置將柔和的光澤應(yīng)用于表單的邊界。根據(jù)表單當(dāng)前是否處于活動(dòng)狀態(tài)(選中),表單可以顯示兩種顏色,這些顏色被分配給XtraForm.ActiveGlowColor和 XtraForm.InactiveGlowColor屬性。
C# :
public Form1() { InitializeComponent(); this.FormBorderEffect = DevExpress.XtraEditors.FormBorderEffect.Glow; } // Overrides the 'OnShown' method to specify shadow settings. protected override void OnShown(EventArgs e) { base.OnShown(e); this.ActiveGlowColor = Color.Lime; FormShadow.AllowResizeViaShadows = true; }
VB.NET:
Public Sub New() InitializeComponent() Me.FormBorderEffect = DevExpress.XtraEditors.FormBorderEffect.Glow End Sub ' Overrides the 'OnShown' method to specify shadow settings. Protected Overrides Sub OnShown(ByVal e As EventArgs) MyBase.OnShown(e) Me.ActiveGlowColor = Color.Lime FormShadow.AllowResizeViaShadows = True End Sub
增加邊框?qū)挾?/strong>
啟用WindowsFormsSettings.FormThickBorder或WindowsFormsSettings.MdiFormThickBorder屬性來放大 XtraForms邊框和擴(kuò)大大小調(diào)整區(qū)域,注意,這些設(shè)置會(huì)影響應(yīng)用程序中的所有 XtraForms和 RibbonForms。
當(dāng)陰影/輝光效果關(guān)閉時(shí),擴(kuò)大的邊框使用戶更容易調(diào)整表單大小,并且默認(rèn)的表單調(diào)整區(qū)域太窄。
MDI標(biāo)題欄說明
如果啟用了XtraForm.ShowMdiChildCaptionInParentTitle選項(xiàng),子MDI表單標(biāo)題將與父表單的標(biāo)題欄合并。下圖展示了一個(gè)例子:“document1”字符串顯示在父表單自己的“Form1”標(biāo)題旁邊。
要更改默認(rèn)的 “<child_form_caption> - <parent_form_caption>”格式字符串,請(qǐng)使用XtraForm.MdiChildCaptionFormatString財(cái)產(chǎn)。