XtraForm
DevExpress的皮肤、外观和感觉以及 Skinning techniques只能应用于DevExpress控件,为了在整个应用程序中实现一致的UI,标准的WinForms对话框、表单和消息框必须被它们的DevExpress对应物所取代。本文专门讨论替换默认项目表单的XtraForm。
向项目中添加XtraForm
以XtraForm作为主要表单启动项目的最快方法是利用UI-ready DevExpress模板库,所有这些模板都是基于DevExpress表单的,具体来说,基于工具栏的模板和“空白应用程序”模板使用XtraForms。
要添加新的XtraForms,请在Visual Studio的解决方案资源管理器窗口中右键单击项目,然后选择“Add DevExpress Item | New Item…”,这将调用带有新项目模板的模板库,选择“表单”模板,输入表单名称,点击“添加项目”。
将标准表格转换为 Xtra表格
要用XtraForms替换现有的默认表单,请调用表单智能标签并选择Convert to Skinable Form选项。
要在代码中做同样的事情,将表单从 System.Windows.Forms.Form派生的基类更改为DevExpress.XtraEditors.XtraForm,还需要在项目中包含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
将皮肤应用到表单标题栏
如果您使用DefaultLookAndFeel组件来为应用程序添加皮肤,那么所需的所有代码行都将自动添加到Project.cs文件的Main()方法中,在这种情况下,如果不执行任何操作,表单标题栏(以及此表单上的所有控件)将根据活动外观绘制。
否则,如果您在代码中应用皮肤,请手动调用静态SkinManager.EnableFormSkins或SkinManager.EnableMdiFormSkins方法。
C# :
using DevExpress.Skins; // ... SkinManager.EnableFormSkins(); SkinManager.EnableMdiFormSkins();
VB.NET:
Imports DevExpress.Skins; ' ... SkinManager.EnableFormSkins() SkinManager.EnableMdiFormSkins()
发光和阴影效果
XtraForm.FormBorderEffect属性允许您激活表单的发光或阴影效果。
覆盖表单的onshow方法,并将FormBorderEffect属性设置为FormBorderEffect.Shadow来启用表单阴影,给FormShadow.Opacity属性赋0到255的字节值,来指定阴影的不透明度。
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
当您将 XtraForm.FormBorderEffect属性设置为 FormBorderEffect.Glow时,表单发光效果被激活,此设置将柔和的光泽应用于表单的边界。根据表单当前是否处于活动状态(选中),表单可以显示两种颜色,这些颜色被分配给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
增加边框宽度
启用WindowsFormsSettings.FormThickBorder或WindowsFormsSettings.MdiFormThickBorder属性来放大 XtraForms边框和扩大大小调整区域,注意,这些设置会影响应用程序中的所有 XtraForms和 RibbonForms。
当阴影/辉光效果关闭时,扩大的边框使用户更容易调整表单大小,并且默认的表单调整区域太窄。
MDI标题栏说明
如果启用了XtraForm.ShowMdiChildCaptionInParentTitle选项,子MDI表单标题将与父表单的标题栏合并。下图展示了一个例子:“document1”字符串显示在父表单自己的“Form1”标题旁边。
要更改默认的 “<child_form_caption> - <parent_form_caption>”格式字符串,请使用XtraForm.MdiChildCaptionFormatString财产。