185 lines
14 KiB
C#
185 lines
14 KiB
C#
|
using System.Drawing;
|
|||
|
using WeifenLuo.WinFormsUI.Docking;
|
|||
|
#pragma warning disable CS1591 // 缺少对公共可见类型或成员的 XML 注释
|
|||
|
namespace ryControls.WeifenLuo.WinFormsUI.ThemeVS2012
|
|||
|
{
|
|||
|
public class ImageService : IImageService
|
|||
|
{
|
|||
|
public Bitmap Dockindicator_PaneDiamond { get; internal set; }
|
|||
|
public Bitmap Dockindicator_PaneDiamond_Fill { get; internal set; }
|
|||
|
public Bitmap Dockindicator_PaneDiamond_Hotspot { get; internal set; }
|
|||
|
public Bitmap DockIndicator_PaneDiamond_HotspotIndex { get; internal set; }
|
|||
|
public Image DockIndicator_PanelBottom { get; internal set; }
|
|||
|
public Image DockIndicator_PanelFill { get; internal set; }
|
|||
|
public Image DockIndicator_PanelLeft { get; internal set; }
|
|||
|
public Image DockIndicator_PanelRight { get; internal set; }
|
|||
|
public Image DockIndicator_PanelTop { get; internal set; }
|
|||
|
public Bitmap DockPane_Close { get; internal set; }
|
|||
|
public Bitmap DockPane_List { get; internal set; }
|
|||
|
public Bitmap DockPane_Dock { get; internal set; }
|
|||
|
public Bitmap DockPaneActive_AutoHide { get; internal set; }
|
|||
|
public Bitmap DockPane_Option { get; internal set; }
|
|||
|
public Bitmap DockPane_OptionOverflow { get; internal set; }
|
|||
|
public Bitmap DockPaneActive_Close { get; }
|
|||
|
public Bitmap DockPaneActive_Dock { get; }
|
|||
|
public Bitmap DockPaneActive_Option { get; }
|
|||
|
public Bitmap DockPaneHover_Close { get; internal set; }
|
|||
|
public Bitmap DockPaneHover_List { get; internal set; }
|
|||
|
public Bitmap DockPaneHover_Dock { get; internal set; }
|
|||
|
public Bitmap DockPaneActiveHover_AutoHide { get; internal set; }
|
|||
|
public Bitmap DockPaneHover_Option { get; internal set; }
|
|||
|
public Bitmap DockPaneHover_OptionOverflow { get; internal set; }
|
|||
|
public Bitmap DockPanePress_Close { get; internal set; }
|
|||
|
public Bitmap DockPanePress_List { get; internal set; }
|
|||
|
public Bitmap DockPanePress_Dock { get; internal set; }
|
|||
|
public Bitmap DockPanePress_AutoHide { get; internal set; }
|
|||
|
public Bitmap DockPanePress_Option { get; internal set; }
|
|||
|
public Bitmap DockPanePress_OptionOverflow { get; internal set; }
|
|||
|
public Bitmap DockPaneActiveHover_Close { get; }
|
|||
|
public Bitmap DockPaneActiveHover_Dock { get; }
|
|||
|
public Bitmap DockPaneActiveHover_Option { get; }
|
|||
|
public Image TabHoverActive_Close { get; internal set; }
|
|||
|
public Image TabActive_Close { get; internal set; }
|
|||
|
public Image TabInactive_Close { get; internal set; }
|
|||
|
public Image TabHoverInactive_Close { get; internal set; }
|
|||
|
public Image TabHoverLostFocus_Close { get; internal set; }
|
|||
|
public Image TabLostFocus_Close { get; internal set; }
|
|||
|
public Image TabPressActive_Close { get; }
|
|||
|
public Image TabPressInactive_Close { get; }
|
|||
|
public Image TabPressLostFocus_Close { get; }
|
|||
|
|
|||
|
readonly DockPanelColorPalette _palette;
|
|||
|
|
|||
|
public ImageService(ThemeBase theme)
|
|||
|
{
|
|||
|
_palette = theme.ColorPalette;
|
|||
|
Dockindicator_PaneDiamond_Hotspot = Resources.Dockindicator_PaneDiamond_Hotspot;
|
|||
|
DockIndicator_PaneDiamond_HotspotIndex = Resources.DockIndicator_PaneDiamond_HotspotIndex;
|
|||
|
|
|||
|
var arrow = _palette.DockTarget.GlyphArrow;
|
|||
|
var outerBorder = _palette.DockTarget.Border;
|
|||
|
var separator = _palette.DockTarget.ButtonBorder;
|
|||
|
var innerBorder = _palette.DockTarget.Background;
|
|||
|
var background = _palette.DockTarget.ButtonBackground;
|
|||
|
var window = _palette.DockTarget.GlyphBorder;
|
|||
|
var core = _palette.DockTarget.GlyphBackground;
|
|||
|
var drawCore = core.ToArgb() != background.ToArgb();
|
|||
|
|
|||
|
using (var layerArrow = ImageServiceHelper.GetLayerImage(arrow, 32, theme.PaintingService))
|
|||
|
using (var layerWindow = ImageServiceHelper.GetLayerImage(window, 32, theme.PaintingService))
|
|||
|
using (var layerCore = drawCore ? ImageServiceHelper.GetLayerImage(core, 32, theme.PaintingService) : null)
|
|||
|
using (var layerBorder = ImageServiceHelper.GetBackground(innerBorder, outerBorder, 40, theme.PaintingService))
|
|||
|
using (var bottom = ImageServiceHelper.GetDockIcon(
|
|||
|
Resources.MaskArrowBottom,
|
|||
|
layerArrow,
|
|||
|
Resources.MaskWindowBottom,
|
|||
|
layerWindow,
|
|||
|
Resources.MaskDock,
|
|||
|
background,
|
|||
|
theme.PaintingService,
|
|||
|
Resources.MaskCoreBottom,
|
|||
|
layerCore,
|
|||
|
separator))
|
|||
|
using (var center = ImageServiceHelper.GetDockIcon(
|
|||
|
null,
|
|||
|
null,
|
|||
|
Resources.MaskWindowCenter,
|
|||
|
layerWindow,
|
|||
|
Resources.MaskDock,
|
|||
|
background,
|
|||
|
theme.PaintingService,
|
|||
|
Resources.MaskCoreCenter,
|
|||
|
layerCore,
|
|||
|
separator))
|
|||
|
using (var left = ImageServiceHelper.GetDockIcon(
|
|||
|
Resources.MaskArrowLeft,
|
|||
|
layerArrow,
|
|||
|
Resources.MaskWindowLeft,
|
|||
|
layerWindow,
|
|||
|
Resources.MaskDock,
|
|||
|
background,
|
|||
|
theme.PaintingService,
|
|||
|
Resources.MaskCoreLeft,
|
|||
|
layerCore,
|
|||
|
separator))
|
|||
|
using (var right = ImageServiceHelper.GetDockIcon(
|
|||
|
Resources.MaskArrowRight,
|
|||
|
layerArrow,
|
|||
|
Resources.MaskWindowRight,
|
|||
|
layerWindow,
|
|||
|
Resources.MaskDock,
|
|||
|
background,
|
|||
|
theme.PaintingService,
|
|||
|
Resources.MaskCoreRight,
|
|||
|
layerCore,
|
|||
|
separator))
|
|||
|
using (var top = ImageServiceHelper.GetDockIcon(
|
|||
|
Resources.MaskArrowTop,
|
|||
|
layerArrow,
|
|||
|
Resources.MaskWindowTop,
|
|||
|
layerWindow,
|
|||
|
Resources.MaskDock,
|
|||
|
background,
|
|||
|
theme.PaintingService,
|
|||
|
Resources.MaskCoreTop,
|
|||
|
layerCore,
|
|||
|
separator))
|
|||
|
{
|
|||
|
DockIndicator_PanelBottom = ImageServiceHelper.GetDockImage(bottom, layerBorder);
|
|||
|
DockIndicator_PanelFill = ImageServiceHelper.GetDockImage(center, layerBorder);
|
|||
|
DockIndicator_PanelLeft = ImageServiceHelper.GetDockImage(left, layerBorder);
|
|||
|
DockIndicator_PanelRight = ImageServiceHelper.GetDockImage(right, layerBorder);
|
|||
|
DockIndicator_PanelTop = ImageServiceHelper.GetDockImage(top, layerBorder);
|
|||
|
|
|||
|
using (var five = ImageServiceHelper.GetFiveBackground(Resources.MaskDockFive, innerBorder, outerBorder, theme.PaintingService))
|
|||
|
{
|
|||
|
Dockindicator_PaneDiamond = ImageServiceHelper.CombineFive(five, bottom, center, left, right, top);
|
|||
|
Dockindicator_PaneDiamond_Fill = ImageServiceHelper.CombineFive(five, bottom, center, left, right, top);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
TabActive_Close = ImageServiceHelper.GetImage(Resources.MaskTabClose, _palette.TabSelectedActive.Button, _palette.TabSelectedActive.Background);
|
|||
|
TabInactive_Close = ImageServiceHelper.GetImage(Resources.MaskTabClose, _palette.TabUnselectedHovered.Button, _palette.TabUnselectedHovered.Background);
|
|||
|
TabLostFocus_Close = ImageServiceHelper.GetImage(Resources.MaskTabClose, _palette.TabSelectedInactive.Button, _palette.TabSelectedInactive.Background);
|
|||
|
TabHoverActive_Close = ImageServiceHelper.GetImage(Resources.MaskTabClose, _palette.TabButtonSelectedActiveHovered.Glyph, _palette.TabButtonSelectedActiveHovered.Background, _palette.TabButtonSelectedActiveHovered.Border);
|
|||
|
TabHoverInactive_Close = ImageServiceHelper.GetImage(Resources.MaskTabClose, _palette.TabButtonUnselectedTabHoveredButtonHovered.Glyph, _palette.TabButtonUnselectedTabHoveredButtonHovered.Background, _palette.TabButtonUnselectedTabHoveredButtonHovered.Border);
|
|||
|
TabHoverLostFocus_Close = ImageServiceHelper.GetImage(Resources.MaskTabClose, _palette.TabButtonSelectedInactiveHovered.Glyph, _palette.TabButtonSelectedInactiveHovered.Background, _palette.TabButtonSelectedInactiveHovered.Border);
|
|||
|
|
|||
|
TabPressActive_Close = ImageServiceHelper.GetImage(Resources.MaskTabClose, _palette.TabButtonSelectedActivePressed.Glyph, _palette.TabButtonSelectedActivePressed.Background, _palette.TabButtonSelectedActivePressed.Border);
|
|||
|
TabPressInactive_Close = ImageServiceHelper.GetImage(Resources.MaskTabClose, _palette.TabButtonUnselectedTabHoveredButtonPressed.Glyph, _palette.TabButtonUnselectedTabHoveredButtonPressed.Background, _palette.TabButtonUnselectedTabHoveredButtonPressed.Border);
|
|||
|
TabPressLostFocus_Close = ImageServiceHelper.GetImage(Resources.MaskTabClose, _palette.TabButtonSelectedInactivePressed.Glyph, _palette.TabButtonSelectedInactivePressed.Background, _palette.TabButtonSelectedInactivePressed.Border);
|
|||
|
|
|||
|
DockPane_List = ImageServiceHelper.GetImage(Resources.MaskTabList, _palette.OverflowButtonDefault.Glyph, _palette.MainWindowActive.Background);
|
|||
|
DockPane_OptionOverflow = ImageServiceHelper.GetImage(Resources.MaskTabOverflow, _palette.OverflowButtonDefault.Glyph, _palette.MainWindowActive.Background);
|
|||
|
|
|||
|
DockPaneHover_List = ImageServiceHelper.GetImage(Resources.MaskTabList, _palette.OverflowButtonHovered.Glyph, _palette.OverflowButtonHovered.Background, _palette.OverflowButtonHovered.Border);
|
|||
|
DockPaneHover_OptionOverflow = ImageServiceHelper.GetImage(Resources.MaskTabOverflow, _palette.OverflowButtonHovered.Glyph, _palette.OverflowButtonHovered.Background, _palette.OverflowButtonHovered.Border);
|
|||
|
|
|||
|
DockPanePress_List = ImageServiceHelper.GetImage(Resources.MaskTabList, _palette.OverflowButtonPressed.Glyph, _palette.OverflowButtonPressed.Background, _palette.OverflowButtonPressed.Border);
|
|||
|
DockPanePress_OptionOverflow = ImageServiceHelper.GetImage(Resources.MaskTabOverflow, _palette.OverflowButtonPressed.Glyph, _palette.OverflowButtonPressed.Background, _palette.OverflowButtonPressed.Border);
|
|||
|
|
|||
|
DockPane_Close = ImageServiceHelper.GetImage(Resources.MaskToolWindowClose, _palette.ToolWindowCaptionInactive.Button, _palette.ToolWindowCaptionInactive.Background);
|
|||
|
DockPane_Dock = ImageServiceHelper.GetImage(Resources.MaskToolWindowDock, _palette.ToolWindowCaptionInactive.Button, _palette.ToolWindowCaptionInactive.Background);
|
|||
|
DockPane_Option = ImageServiceHelper.GetImage(Resources.MaskToolWindowOption, _palette.ToolWindowCaptionInactive.Button, _palette.ToolWindowCaptionInactive.Background);
|
|||
|
|
|||
|
DockPaneActive_Close = ImageServiceHelper.GetImage(Resources.MaskToolWindowClose, _palette.ToolWindowCaptionActive.Button, _palette.ToolWindowCaptionActive.Background);
|
|||
|
DockPaneActive_Dock = ImageServiceHelper.GetImage(Resources.MaskToolWindowDock, _palette.ToolWindowCaptionActive.Button, _palette.ToolWindowCaptionActive.Background);
|
|||
|
DockPaneActive_Option = ImageServiceHelper.GetImage(Resources.MaskToolWindowOption, _palette.ToolWindowCaptionActive.Button, _palette.ToolWindowCaptionActive.Background);
|
|||
|
DockPaneActive_AutoHide = ImageServiceHelper.GetImage(Resources.MaskToolWindowAutoHide, _palette.ToolWindowCaptionActive.Button, _palette.ToolWindowCaptionActive.Background);
|
|||
|
|
|||
|
DockPaneHover_Close = ImageServiceHelper.GetImage(Resources.MaskToolWindowClose, _palette.ToolWindowCaptionButtonInactiveHovered.Glyph, _palette.ToolWindowCaptionButtonInactiveHovered.Background, _palette.ToolWindowCaptionButtonInactiveHovered.Border);
|
|||
|
DockPaneHover_Dock = ImageServiceHelper.GetImage(Resources.MaskToolWindowDock, _palette.ToolWindowCaptionButtonInactiveHovered.Glyph, _palette.ToolWindowCaptionButtonInactiveHovered.Background, _palette.ToolWindowCaptionButtonInactiveHovered.Border);
|
|||
|
DockPaneHover_Option = ImageServiceHelper.GetImage(Resources.MaskToolWindowOption, _palette.ToolWindowCaptionButtonInactiveHovered.Glyph, _palette.ToolWindowCaptionButtonInactiveHovered.Background, _palette.ToolWindowCaptionButtonInactiveHovered.Border);
|
|||
|
|
|||
|
DockPaneActiveHover_Close = ImageServiceHelper.GetImage(Resources.MaskToolWindowClose, _palette.ToolWindowCaptionButtonActiveHovered.Glyph, _palette.ToolWindowCaptionButtonActiveHovered.Background, _palette.ToolWindowCaptionButtonActiveHovered.Border);
|
|||
|
DockPaneActiveHover_Dock = ImageServiceHelper.GetImage(Resources.MaskToolWindowDock, _palette.ToolWindowCaptionButtonActiveHovered.Glyph, _palette.ToolWindowCaptionButtonActiveHovered.Background, _palette.ToolWindowCaptionButtonActiveHovered.Border);
|
|||
|
DockPaneActiveHover_Option = ImageServiceHelper.GetImage(Resources.MaskToolWindowOption, _palette.ToolWindowCaptionButtonActiveHovered.Glyph, _palette.ToolWindowCaptionButtonActiveHovered.Background, _palette.ToolWindowCaptionButtonActiveHovered.Border);
|
|||
|
DockPaneActiveHover_AutoHide = ImageServiceHelper.GetImage(Resources.MaskToolWindowAutoHide, _palette.ToolWindowCaptionButtonActiveHovered.Glyph, _palette.ToolWindowCaptionButtonActiveHovered.Background, _palette.ToolWindowCaptionButtonActiveHovered.Border);
|
|||
|
|
|||
|
DockPanePress_Close = ImageServiceHelper.GetImage(Resources.MaskToolWindowClose, _palette.ToolWindowCaptionButtonPressed.Glyph, _palette.ToolWindowCaptionButtonPressed.Background, _palette.ToolWindowCaptionButtonPressed.Border);
|
|||
|
DockPanePress_Dock = ImageServiceHelper.GetImage(Resources.MaskToolWindowDock, _palette.ToolWindowCaptionButtonPressed.Glyph, _palette.ToolWindowCaptionButtonPressed.Background, _palette.ToolWindowCaptionButtonPressed.Border);
|
|||
|
DockPanePress_Option = ImageServiceHelper.GetImage(Resources.MaskToolWindowOption, _palette.ToolWindowCaptionButtonPressed.Glyph, _palette.ToolWindowCaptionButtonPressed.Background, _palette.ToolWindowCaptionButtonPressed.Border);
|
|||
|
DockPanePress_AutoHide = ImageServiceHelper.GetImage(Resources.MaskToolWindowAutoHide, _palette.ToolWindowCaptionButtonPressed.Glyph, _palette.ToolWindowCaptionButtonPressed.Background, _palette.ToolWindowCaptionButtonPressed.Border);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|