用意されたテーマを適用することで、全体の外観を変更できます。
既定のテーマはVisual Studioのバージョンに合わせて用意されており、たとえばVisual Studio 2015のそれはNuGet Gallery | DockPanelSuite.ThemeVS2015にあるようにNuGetからダウンロードできます。そしてDockPanelのThemeプロパティに
dockPanel.Theme = new WeifenLuo.WinFormsUI.Docking.VS2015BlueTheme();
のように指定することで適用できます。
なおテーマを指定しない場合には、Visual Studio 2005のそれが適用されます。Visual Studio 2005 Theme - Existing Themes — dockpanelsuite 3.0 documentation
v3.1以降は既定のテーマがDefaultThemeに変更されており、テーマを明示しないと「DockPanel.Theme must be set to a valid theme.」としてArgumentExceptionが投げられます。DockPanel showing content not working unless setting a theme · Issue #670 · dockpanelsuite/dockpanelsuite · GitHub
メニューなどのToolStripを継承したクラスもDockPanelのテーマに合わせるならば、適用するテーマのApplyTo()にそれを渡します。
ThemeBase themeBase = new VS2015BlueTheme(); themeBase.ApplyTo(menuStrip1); themeBase.ApplyTo(statusStrip1); dockPanel.Theme = themeBase;
テーマを適用するときはDockPanel上の区画はすべて閉じられている必要があるため、レイアウトを保存してからテーマを適用し、レイアウトを復元します。
using (MemoryStream memoryStream = new MemoryStream()) { // レイアウトを保存する dockPanel.SaveAsXml(memoryStream, Encoding.UTF8); // すべてのコンテンツを閉じる CloseAllContents(); // 新しいテーマを適用する dockPanel.Theme = newTheme; // レイアウトを復元する DeserializeDockContent deserializeDockContent = new DeserializeDockContent(GetDockContent); memoryStream.Seek(0, SeekOrigin.Begin); dockPanel.LoadFromXml(memoryStream, deserializeDockContent); }DockSample.MainForm.SetSchema()
フォントは自動で隠れるウィンドウとそれ以外の、2つにそれぞれ設定できます。
// The skin used to display the auto hide strips and tabs. dockPanel.Theme.Skin.AutoHideStripSkin.TextFont = newFont; // The skin used to display the Document and ToolWindow style DockStrips and Tabs. dockPanel.Theme.Skin.DockPaneStripSkin.TextFont = newFont;