RaUI/Source/ryControls/WeifenLuo.WinFormsUI/ThemeVS2012/ImageService.cs
zilinsoft 3262955f2f ### 2023-11-07更新
------
#### RaUIV4    V4.0.2311.0701
- *.[全新]整合了MyDb、ryControls、MyDb_MySQL等dll文件到RaUI一个项目。
- *.[新增]新增ApkOp类,可以轻松获取APK信息。
- *.[新增]新增JsonExt扩展类,让Json操作更简单。
- *.[新增]新增WebP类,可以支持webp格式的图片。
- *.[改进]ryQuickSQL中的AddField方法改为自动替换已存在的同名值。
- *.[修复]ryQuickSQL中的AddFieldCalc方法无法正常计算的BUG。
2023-11-07 16:37:53 +08:00

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);
}
}
}