皮膚
這個(gè)主題解釋了如何將DevExpress主題/皮膚應(yīng)用到應(yīng)用程序中,如何允許用戶(hù)在運(yùn)行時(shí)在主題之間切換,如何自定義現(xiàn)有的皮膚或創(chuàng)建自己的皮膚等等。
DevExpress WinForms控件包含許多基本控件的對(duì)應(yīng)項(xiàng):按鈕、復(fù)選框、窗體、消息框、對(duì)話(huà)框等。我們實(shí)現(xiàn)所有這些控件的主要原因是為了支持的主題,使用DevExpress您可以獲得各種外觀(guān)和全面的控制庫(kù),來(lái)保證整個(gè)應(yīng)用程序的視覺(jué)一致性。
要查看可用的主題/皮膚,打開(kāi)任何演示應(yīng)用程序。
如何應(yīng)用皮膚
設(shè)計(jì)時(shí)間
打開(kāi)項(xiàng)目設(shè)置頁(yè)面并選擇所需的 WinForms 主題,此頁(yè)面在 .NET Core 項(xiàng)目中不可用,將DefaultLookAndFeel組件放置在 Form 上并使用其智能標(biāo)記菜單,或在代碼中指定所需的外觀(guān)。
運(yùn)行時(shí)(在代碼中)
調(diào)用UserLookAndFeel.SetSkinStyle方法。
C#:
using DevExpress.LookAndFeel; // ... UserLookAndFeel.Default.SetSkinStyle(SkinStyle.WXI);
VB.NET:
Imports DevExpress.LookAndFeel ' ... UserLookAndFeel.Default.SetSkinStyle(SkinStyle.WXI)
提示:矢量調(diào)色板適用于整個(gè) Windows 窗體應(yīng)用程序,您不能將不同的調(diào)色板應(yīng)用于程序中的不同表單。
如何啟用Bonus或自定義皮膚
DevExpress皮膚分為兩大類(lèi):DevExpress推薦的最新皮膚,以及存儲(chǔ)在單獨(dú)庫(kù)/包中的過(guò)時(shí)/主題皮膚。
當(dāng)您使用模板庫(kù)創(chuàng)建項(xiàng)目或?qū)⑷魏慰丶戏诺奖韱紊蠒r(shí),現(xiàn)代皮膚立即可用。如果啟動(dòng)空白項(xiàng)目,則需要DevExpress.Utils手動(dòng)添加庫(kù)(或安裝DevExpress.Utils NuGet package),對(duì)于blank .NET Core (. NET 5) 項(xiàng)目,請(qǐng)安裝全局DevExpress.Win.Design。
過(guò)時(shí)的皮膚和主題皮膚存儲(chǔ)在DevExpress.BonusSkins 庫(kù)/NuGet 包中,這些皮膚必須先注冊(cè)才能應(yīng)用。如需注冊(cè)獎(jiǎng)勵(lì)皮膚,請(qǐng)?jiān)陧?xiàng)目設(shè)置頁(yè)面查看相應(yīng)設(shè)置,或在應(yīng)用啟動(dòng)時(shí)Register調(diào)用該方法:
C#:
namespace WindowsFormsApplication1 { static class Program { [STAThread] static void Main() { DevExpress.UserSkins.BonusSkins.Register(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }
VB.NET:
Public Class Form1 Shared Sub Main() DevExpress.UserSkins.BonusSkins.Register() Application.EnableVisualStyles() Application.SetCompatibleTextRenderingDefault(False) Application.Run(New Form1) End Sub End Class
注冊(cè)獎(jiǎng)勵(lì)皮膚后,您可以像使用standard skins一樣使用它們。
C#:
using DevExpress.LookAndFeel; UserLookAndFeel.Default.SetSkinStyle(SkinStyle.Pumpkin);
VB.NET:
Imports DevExpress.LookAndFeel UserLookAndFeel.Default.SetSkinStyle(SkinStyle.Pumpkin)
還必須注冊(cè) Skin Editor工具生成的庫(kù)中的自定義皮膚。
如何讓用戶(hù)在運(yùn)行時(shí)選擇皮膚
DevExpress WinForms 訂閱包括多個(gè)即用型欄項(xiàng)目,允許用戶(hù)在皮膚和皮膚調(diào)色板之間切換,您可以將這些項(xiàng)目添加到工具欄表單和Fluent Design 表單的工具欄、功能區(qū)和標(biāo)題欄。
下面的代碼將 Skin Gallery 選擇器添加到"ribbonPageGroup2"組中。
C#:
using DevExpress.XtraBars; // ... SkinRibbonGalleryBarItem skinGallery = new SkinRibbonGalleryBarItem(); ribbonPageGroup2.ItemLinks.Add(skinGallery);
VB.NET:
Imports DevExpress.XtraBars ' ... Private skinGallery As New SkinRibbonGalleryBarItem() ribbonPageGroup2.ItemLinks.Add(skinGallery)
請(qǐng)注意,如果SkinDropDownButtonItem在代碼中創(chuàng)建選擇器,則需要調(diào)用該InitDropDownSkinGallery方法來(lái)初始化該選擇器的下拉列表。
C#:
using DevExpress.XtraBars; using DevExpress.XtraBars.Helpers; // Add the selector next to the standard "Close", "Maximize", and "Minimize" // buttons of the Toolbar Form SkinDropDownButtonItem skinSelector = new SkinDropDownButtonItem(); SkinHelper.InitDropDownSkinGallery(skinSelector); skinSelector.Alignment = BarItemLinkAlignment.Right; this.toolbarFormControl1.TitleItemLinks.Add(skinSelector);
VB.NET:
Imports DevExpress.XtraBars Imports DevExpress.XtraBars.Helpers ' Add the selector next to the standard "Close", "Maximize", and "Minimize" ' buttons of the Toolbar Form Private skinSelector As New SkinDropDownButtonItem() SkinHelper.InitDropDownSkinGallery(skinSelector) skinSelector.Alignment = BarItemLinkAlignment.Right Me.toolbarFormControl1.TitleItemLinks.Add(skinSelector)
要重命名和/或更改這些標(biāo)準(zhǔn)皮膚選擇器項(xiàng)目的圖標(biāo),請(qǐng)?zhí)幚碓揝kinHelper.CreateGalleryItem事件。
C#:
using DevExpress.XtraBars; using DevExpress.XtraBars.Helpers; SkinHelper.CreateGalleryItem += (s, e) => { if (e.ItemName.Equals("DevExpress Style")) { e.GalleryItem.Image = e.UseLargeIcons ? MyCustomLargeIcon : MyCustomSmallIcon; e.GalleryItem.HoverImage = MyCustomLargeIcon; e.GalleryItem.Caption = "Moonlight"; } };
VB.NET:
Imports DevExpress.XtraBars Imports DevExpress.XtraBars.Helpers AddHandler SkinHelper.CreateGalleryItem, Sub(s, e) If e.ItemName.Equals("DevExpress Style") Then e.GalleryItem.Image = If(e.UseLargeIcons, MyCustomLargeIcon, MyCustomSmallIcon) e.GalleryItem.HoverImage = MyCustomLargeIcon e.GalleryItem.Caption = "Moonlight" End If End Sub
提示:
- 在不同的皮膚中,皮膚元素可以有不同的設(shè)置(例如填充、邊距等)。有些皮膚包含了其他皮膚中不可用的元素。
- 在某些情況下,從一個(gè)皮膚切換到另一個(gè)皮膚可能會(huì)破壞表單的布局(例如,UI控件可能更短或更薄,內(nèi)容可能被剪切),我們建議不要?jiǎng)?chuàng)建 pixel-perfect的布局,以避免在更改皮膚時(shí)出現(xiàn)UI問(wèn)題。
皮膚調(diào)色板
DevExpress WinForms皮膚可以在UI元素上繪制光柵或矢量圖像。柵格皮膚只有一個(gè)默認(rèn)外觀(guān),而每個(gè)矢量皮膚都有一個(gè)選擇的調(diào)色板(色板),用戶(hù)可以選擇調(diào)色板來(lái)修改當(dāng)前皮膚的配色方案。下圖展示了“The Bezier”矢量皮膚附帶的一些調(diào)色板。
您可以采用與指定外觀(guān)相同的方式應(yīng)用調(diào)色板:打開(kāi)項(xiàng)目設(shè)置頁(yè)面或調(diào)用SetSkinStyle(SkinSvgPalette)重載。
C#:
using DevExpress.LookAndFeel; // ... UserLookAndFeel.Default.SetSkinStyle(SkinSvgPalette.Bezier.Tokyo);
VB.NET:
Imports DevExpress.LookAndFeel ' ... UserLookAndFeel.Default.SetSkinStyle(SkinSvgPalette.Bezier.Tokyo)
默認(rèn)應(yīng)用程序模式(淺色/深色)
使用WindowsFormsSettings.TrackWindowsAppMode設(shè)置指定您的應(yīng)用程序是否跟蹤 Windows 操作系統(tǒng)中的默認(rèn)應(yīng)用程序模式設(shè)置并在外觀(guān)庫(kù)中僅顯示淺色或深色調(diào)色板。
以下示例演示了如何啟用該TrackWindowsAppMode設(shè)置:
C#:
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); WindowsFormsSettings.TrackWindowsAppMode = DevExpress.Utils.DefaultBoolean.True; Application.Run(new Form1()); }
VB.NET:
Shared Sub Main() Application.EnableVisualStyles() Application.SetCompatibleTextRenderingDefault(False) WindowsFormsSettings.TrackWindowsAppMode = DevExpress.Utils.DefaultBoolean.True Application.Run(New Form1()) End Sub
注意:WindowsFormsSettings.TrackWindowsAppMode設(shè)置僅適用于“WXI”,“Basic”和“The Bezier”皮膚。
使用系統(tǒng)或自定義強(qiáng)調(diào)色
系統(tǒng)強(qiáng)調(diào)色
啟用WindowsFormsSettings.TrackWindowsAccentColor選項(xiàng)來(lái)使用 Windows 操作系統(tǒng)中的強(qiáng)調(diào)顏色設(shè)置,并將其應(yīng)用到矢量外觀(guān)的所有調(diào)色板(高對(duì)比度外觀(guān)除外)。
C#:
using DevExpress.XtraEditors; static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); WindowsFormsSettings.TrackWindowsAccentColor = DevExpress.Utils.DefaultBoolean.True; Application.Run(new Form1()); }
VB.NET:
Imports DevExpress.XtraEditors Shared Sub Main() Application.EnableVisualStyles() Application.SetCompatibleTextRenderingDefault(False) WindowsFormsSettings.TrackWindowsAccentColor = DevExpress.Utils.DefaultBoolean.True Application.Run(New Form1()) End Sub
自定義強(qiáng)調(diào)色
使用SetAccentColor方法自定義強(qiáng)調(diào)色(優(yōu)先于系統(tǒng)強(qiáng)調(diào)色)。
C#:
DevExpress.XtraEditors.WindowsFormsSettings.SetAccentColor(Color.FromArgb(16, 124, 65));
VB.NET:
DevExpress.XtraEditors.WindowsFormsSettings.SetAccentColor(Color.FromArgb(16, 124, 65))
提示:
- “The Bezier”皮膚支持第二種強(qiáng)調(diào)色,其他皮膚不支持第二種強(qiáng)調(diào)色。
- 使用SetAccentColor2方法指定第二個(gè)強(qiáng)調(diào)色。
重置強(qiáng)調(diào)色
以下示例演示了如何重置主要和次要強(qiáng)調(diào)色:
C#:
DevExpress.XtraEditors.WindowsFormsSettings.SetAccentColor(System.Drawing.Color.Empty); DevExpress.XtraEditors.WindowsFormsSettings.SetAccentColor2(System.Drawing.Color.Empty);
VB.NET:
DevExpress.XtraEditors.WindowsFormsSettings.SetAccentColor(System.Drawing.Color.Empty) DevExpress.XtraEditors.WindowsFormsSettings.SetAccentColor2(System.Drawing.Color.Empty)
當(dāng)您禁用WindowsFormsSettings.TrackWindowsAccentColor設(shè)置時(shí),強(qiáng)調(diào)色不會(huì)自動(dòng)重置。您應(yīng)該調(diào)用該SetAccentColor(System.Drawing.Color.Empty)方法來(lái)重置強(qiáng)調(diào)色。
C#:
WindowsFormsSettings.TrackWindowsAccentColor = DefaultBoolean.False; WindowsFormsSettings.SetAccentColor(Color.Empty); WindowsFormsSettings.SetAccentColor2(Color.Empty);
VB.NET:
WindowsFormsSettings.TrackWindowsAccentColor = DefaultBoolean.False WindowsFormsSettings.SetAccentColor(Color.Empty) WindowsFormsSettings.SetAccentColor2(Color.Empty)
突出顯示單獨(dú)的控件
您可以為各個(gè) DevExpress 控件(例如SimpleButtons)設(shè)置自定義背景、邊框和前景色,為此請(qǐng)?jiān)L問(wèn)Control.Appearance組中的設(shè)置。建議您使用DX Colors而不是系統(tǒng)顏色,這些顏色是從外觀(guān)中檢索的,并且當(dāng)用戶(hù)在運(yùn)行時(shí)更改外觀(guān)時(shí)會(huì)自動(dòng)更新。
C#:
// Use DXSkinColors.FillColors for background colors simpleButton1.Appearance.BackColor = DXSkinColors.FillColors.Danger; // Use DXSkinColors.ForeColors for text colors simpleButton1.Appearance.ForeColor = DXSkinColors.ForeColors.Warning;
VB.NET:
' Use DXSkinColors.FillColors for background colors simpleButton1.Appearance.BackColor = DXSkinColors.FillColors.Danger ' Use DXSkinColors.ForeColors for text colors simpleButton1.Appearance.ForeColor = DXSkinColors.ForeColors.Warning
高對(duì)比度皮膚
“高對(duì)比度”矢量皮膚是為低視力障礙用戶(hù)提供的無(wú)障礙主題。
該主題的外觀(guān)和可用性取決于用戶(hù)設(shè)置(Windows 中的“Personalize | High contrast settings菜單)。
- 如果Windows的高對(duì)比度模式是 off,用戶(hù)可以像選擇其他DevExpress主題一樣選擇High contrast 皮膚,皮膚調(diào)色板選擇器也是可用的。
- 如果Windows高對(duì)比度模式的on,所有允許用戶(hù)更改皮膚和調(diào)色板的UI選擇器都被禁用,帶有Default調(diào)色板的矢量High Contrast皮膚變得活躍。Default調(diào)色板使用與用戶(hù)在Windows “ High contrast settings”屏幕中設(shè)置的顏色相同。
您可以禁用靜態(tài)WindowsFormsSettings.TrackSystemHighContrastMode屬性,以防止應(yīng)用程序跟蹤 Windows 高對(duì)比度模式的實(shí)際狀態(tài)。在這種情況下,應(yīng)用程序不會(huì)打開(kāi)或關(guān)閉“High Contrast”皮膚,用戶(hù)可以選擇任何皮膚。
加厚表單邊框
在“Office 2019 Colorful”等現(xiàn)代平面皮膚中,DevExpress Forms會(huì)顯示薄邊框,這對(duì)用戶(hù)來(lái)說(shuō)可能不方便,因?yàn)楫?dāng)他們?cè)噲D調(diào)整表單的大小時(shí),他們必須用鼠標(biāo)指針瞄準(zhǔn)那些細(xì)邊框。為了改善用戶(hù)體驗(yàn),DevExpress Forms的調(diào)整大小區(qū)域包括邊框和Form陰影/發(fā)光皮膚元素,這允許用戶(hù)在鼠標(biāo)指針懸停在窗體的陰影上時(shí)調(diào)整窗體的大小。
在以下情況下,表單無(wú)法顯示陰影:
- 如果手動(dòng)禁用XtraForm.FormBorderEffect屬性。
- 如果表單是子 MDI 表單。
- 如果用戶(hù)通過(guò)遠(yuǎn)程桌面連接訪(fǎng)問(wèn)應(yīng)用程序。
在這些情況下,您可以增加表單邊框?qū)挾葋?lái)擴(kuò)大調(diào)整大小區(qū)域。
要增加邊框?qū)挾?,?qǐng)啟用WindowsFormsSettings.FormThickBorder或WindowsFormsSettings.MdiFormThickBorder屬性,具體取決于您是要增加所有 DevExpress 窗體的邊框大小,還是僅增加用作子 MDI 窗體的窗體的邊框大小。
使用WindowsFormsSettings.ThickBorderWidth屬性更改表單邊框的寬度。
提示:當(dāng)啟用遠(yuǎn)程連接優(yōu)化模式時(shí),表單將切換為粗邊框。啟用此模式時(shí),禁用FormThickBorder屬性來(lái)保留基于皮膚的邊框。
皮膚編輯器
DevExpress WinForms 安裝附帶了一個(gè)允許您創(chuàng)建、編輯和分發(fā)主題的工具:Skin Editor。
備忘表和故障排除
Appearances and Skins - DevExpress WinForms Cheat Sheet
示例和最佳實(shí)踐
如何獲取當(dāng)前活動(dòng)的皮膚和調(diào)色板的名稱(chēng)
讀取ActiveSkinName和ActiveSvgPaletteName屬性的值。
C#:
var skinName = UserLookAndFeel.Default.ActiveSkinName; var paletteName = UserLookAndFeel.Default.ActiveSvgPaletteName;
VB.NET:
Dim skinName = UserLookAndFeel.Default.ActiveSkinName Dim paletteName = UserLookAndFeel.Default.ActiveSvgPaletteName
如何識(shí)別皮膚或調(diào)色板在運(yùn)行時(shí)是否已更改
處理靜態(tài)UserLookAndFeel.StyleChanged事件,每次用戶(hù)應(yīng)用不同的皮膚或皮膚調(diào)色板時(shí)都會(huì)引發(fā)此事件。
C#:
UserLookAndFeel.Default.StyleChanged += (s, e) => { // TODO };
VB.NET:
AddHandler UserLookAndFeel.Default.StyleChanged, Sub(s, e) ' TODO End Sub
如何從矢量皮膚調(diào)色板中獲取顏色
使用以下代碼檢索調(diào)色板顏色的值:
C#:
var commonSkin = CommonSkins.GetSkin(UserLookAndFeel.Default); SvgPalette svgPalette = commonSkin.SvgPalettes[Skin.DefaultSkinPaletteName] as SvgPalette; Color keyPaintColor = svgPalette["Key Paint"].Value;
VB.NET:
Dim commonSkin = CommonSkins.GetSkin(UserLookAndFeel.Default) Dim svgPalette As SvgPalette = TryCast(commonSkin.SvgPalettes(Skin.DefaultSkinPaletteName), SvgPalette) Dim keyPaintColor As Color = svgPalette("Key Paint").Value
當(dāng)應(yīng)用程序重新啟動(dòng)時(shí),如何重新應(yīng)用上次活動(dòng)的皮膚
Windows表單應(yīng)用程序設(shè)置功能允許您在客戶(hù)端計(jì)算機(jī)上創(chuàng)建、存儲(chǔ)和維護(hù)自定義應(yīng)用程序和用戶(hù)首選項(xiàng)。此時(shí)可以使用此功能在應(yīng)用程序重新啟動(dòng)時(shí)保存和恢復(fù)活動(dòng)的皮膚和調(diào)色板。
雙擊 Visual Studio 解決方案資源管理器中的“Settings.settings”文件,并創(chuàng)建兩個(gè)字符串類(lèi)型的條目,將兩個(gè)條目的范圍設(shè)置為“User”。當(dāng)應(yīng)用程序即將關(guān)閉時(shí),將UserLookAndFeel.Default.SkinName和UserLookAndFeel.Default.ActiveSvgPaletteName屬性的值保存到應(yīng)用程序設(shè)置。當(dāng)應(yīng)用程序啟動(dòng)時(shí),讀取這些保存的值并將它們作為參數(shù)傳遞給UserLookAndFeel.SetSkinStyle方法。
對(duì)于 v22.1 及更高版本的 DevExpress 安裝,請(qǐng)?jiān)谠O(shè)置中添加額外的布爾條目,這一項(xiàng)應(yīng)用于確定是采用常規(guī)版本還是精簡(jiǎn)版本的WXI皮膚。
xml:
<?xml version='1.0' encoding='utf-8'?> <SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="DXApplication1.Properties" GeneratedClassName="Settings"> <Profiles/> <Settings> <Setting Name="SkinName" Type="System.String" Scope="User"> <Value Profile="(Default)" /> </Setting> <Setting Name="Palette" Type="System.String" Scope="User"> <Value Profile="(Default)" /> </Setting> <Setting name="CompactMode" serializeAs="String"> <Value>False</value> </Setting> </Settings> </SettingsFile>
C#:
using DevExpress.LookAndFeel; private void Form1_FormClosing(object sender, FormClosingEventArgs e) { var settings = Properties.Settings.Default; settings.SkinName = UserLookAndFeel.Default.SkinName; settings.Palette = UserLookAndFeel.Default.ActiveSvgPaletteName; settings.CompactMode = UserLookAndFeel.Default.CompactUIModeForced; settings.Save(); } protected override void OnShown(EventArgs e) { base.OnShown(e); var settings = Properties.Settings.Default; if (!string.IsNullOrEmpty(settings.SkinName)) { if (settings.CompactMode) UserLookAndFeel.ForceCompactUIMode(true, false); if (!string.IsNullOrEmpty(settings.Palette)) UserLookAndFeel.Default.SetSkinStyle(settings.SkinName, settings.Palette); else UserLookAndFeel.Default.SetSkinStyle(settings.SkinName, "DefaultSkinPalette"); } }
VB.NET:
Imports DevExpress.LookAndFeel Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs) Dim settings_Renamed = My.Settings.Default settings_Renamed.SkinName = UserLookAndFeel.Default.SkinName settings_Renamed.Palette = UserLookAndFeel.Default.ActiveSvgPaletteName settings_Renamed.CompactMode = UserLookAndFeel.Default.CompactUIModeForced settings_Renamed.Save() End Sub Protected Overrides Sub OnShown(ByVal e As EventArgs) MyBase.OnShown(e) Dim settings_Renamed = My.Settings.Default If Not String.IsNullOrEmpty(settings_Renamed.SkinName) Then If settings_Renamed.CompactMode Then UserLookAndFeel.ForceCompactUIMode(True, False) End If If Not String.IsNullOrEmpty(settings_Renamed.Palette) Then UserLookAndFeel.Default.SetSkinStyle(settings_Renamed.SkinName, settings_Renamed.Palette) Else UserLookAndFeel.Default.SetSkinStyle(settings_Renamed.SkinName, "DefaultSkinPalette") End If End If End Sub
如何識(shí)別常規(guī)版本和精簡(jiǎn)版本的WXI皮膚是否活躍
讀取UserLookAndFeel.Default.CompactUIModeForced屬性值。
C#:
bool isCompact = UserLookAndFeel.Default.CompactUIModeForced;
VB.NET:
Dim isCompact As Boolean = UserLookAndFeel.Default.CompactUIModeForced
如何在代碼中區(qū)分淺色皮膚和深色皮膚
所有 DevExpress 皮膚和調(diào)色板分為兩類(lèi):深色和淺色。要識(shí)別活動(dòng)主題請(qǐng)調(diào)用DevExpress.Utils.Frames.FrameHelper.IsDarkSkin方法。
C#:
using DevExpress.Utils.Frames; //... if (FrameHelper.IsDarkSkin(this.GetActiveLookAndFeel())) { // Current skin/palette is dark } else { // Current skin/palette is light }
VB.NET:
Imports DevExpress.Utils.Frames '... If FrameHelper.IsDarkSkin(Me.GetActiveLookAndFeel()) Then ' Current skin/palette is dark Else ' Current skin/palette is light End If
請(qǐng)注意,該IsDarkSkin方法根據(jù)“Paint High”調(diào)色板顏色的值來(lái)識(shí)別皮膚是淺色還是深色,因此,該方法的返回值可能與整體皮膚外觀(guān)相反。例如,“Office 2019 深灰色”由于其淺“Paint High”顏色值而被識(shí)別為淺色皮膚,盡管該皮膚主要是深色的。
您可以用自己的方法來(lái)“修復(fù)”感到困惑的返回值。
C#:
VB.NET:bool IsDarkSkinEx() { var res = FrameHelper.IsDarkSkin(this.GetActiveLookAndFeel()); return res || UserLookAndFeel.Default.SkinName == "Office 2019 Dark Gray"; }
VB.NET:
Private Function IsDarkSkinEx() As Boolean Dim res = FrameHelper.IsDarkSkin(Me.GetActiveLookAndFeel()) Return res OrElse UserLookAndFeel.Default.SkinName = "Office 2019 Dark Gray" End Function
如何將皮膚應(yīng)用到?jīng)]有標(biāo)題欄的表單
要隱藏表單的標(biāo)題欄,請(qǐng)禁用其控制框 和圖標(biāo),并刪除表單的標(biāo)題。
C#:
this.Text = null; this.IconOptions.ShowIcon = false; this.ControlBox = false;
VB.NET:
Me.Text = Nothing Me.IconOptions.ShowIcon = False Me.ControlBox = False
除非您重寫(xiě)它們的方法,否則此類(lèi)表單不會(huì)設(shè)置皮膚GetAllowSkin。
C#:
protected override bool GetAllowSkin() { return true; }
VB.NET:
Protected Overrides Function GetAllowSkin() As Boolean Return True End Function