作者:地沟油
前言:
由于系统颜色太单调,所以决定启用DevExpress换肤功能,让界面更美观!
作者的DevExpress已更换到17.2.3了,不过要是不想升级的话,也可以继续沿用旧版的DevExpress哟,因为旧的和新的区别不大哟!
1.首先我们进入Program,在Main()方法出加入以下代码:
1 //启用皮肤 2 DevExpress.Skins.SkinManager.EnableFormSkins(); 3 DevExpress.LookAndFeel.LookAndFeelHelper.ForceDefaultLookAndFeelChanged(); 4 DevExpress.Skins.SkinManager.EnableMdiFormSkins();
2.打开frmMain窗体,加入一个XtraTabbedMdiManager,BarManager,DockManager,DefaultLookAndFeel,分别命名为:
3.在底部Bar出新增一个BarEditItem,命名为beItemColor。
4.在数据库新建一个Skins表,用来保存用户选择过的皮肤。(当然,可以写入Xml,选择写入Xml者可略过本节)
1 USE [IVW] 2 GO 3 4 /****** Object: Table [dbo].[Skins] Script Date: 2017/11/25 19:53:47 ******/ 5 SET ANSI_NULLS ON 6 GO 7 8 SET QUOTED_IDENTIFIER ON 9 GO 10 11 CREATE TABLE [dbo].[Skins]( 12 [Id] [int] IDENTITY(1,1) NOT NULL, 13 [UserId] [int] NOT NULL, 14 [UserCode] [nvarchar](10) NOT NULL, 15 [Values] [nvarchar](50) NOT NULL, 16 [Name] [nvarchar](50) NOT NULL, 17 [DateTime] [datetime] NOT NULL, 18 CONSTRAINT [PK_Skins] PRIMARY KEY CLUSTERED 19 ( 20 [Id] ASC 21 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 22 ) ON [PRIMARY] 23 GO 24 25 EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Skins', @level2type=N'COLUMN',@level2name=N'Id' 26 GO 27 28 EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用户Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Skins', @level2type=N'COLUMN',@level2name=N'UserId' 29 GO 30 31 EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用户代码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Skins', @level2type=N'COLUMN',@level2name=N'UserCode' 32 GO 33 34 EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'皮肤代码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Skins', @level2type=N'COLUMN',@level2name=N'Values' 35 GO 36 37 EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'皮肤名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Skins', @level2type=N'COLUMN',@level2name=N'Name' 38 GO
5.在ivw.Models类更新该实体,方便以后把更改过的皮肤保存到数据库中。
6.进入frmMain后台,写入以下代码:
1 #region 启用皮肤 void SetSkins() 2 void SetSkins() 3 { 4 foreach (DevExpress.Skins.SkinContainer skin in DevExpress.Skins.SkinManager.Default.Skins) 5 { 6 ricbColor.Items.Add(skin.SkinName); 7 } 8 9 dLookAndFeel.LookAndFeel.SkinName = beItemColor.EditValue.ToString(); 10 11 this.beItemColor.EditValueChanged += BeItemColor_EditValueChanged; 12 } 13 14 private void BeItemColor_EditValueChanged(object sender, EventArgs e) 15 { 16 dLookAndFeel.LookAndFeel.SkinName = beItemColor.EditValue.ToString(); 17 } 18 #endregion
7.在构造函数中使用这个方法。
1 public frmMain() 2 { 3 InitializeComponent(); 4 SetSkins(); 5 }
8.让我们试试效果如何。
9.好看的皮肤就呈现在眼前咯,更多皮肤请自己尝试哟。?