123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- using System.Windows.Media;
- namespace System.Windows.Forms
- {
- public class ToolStripProfessionalRenderer : ToolStripRenderer
- {
- public ProfessionalColorTable ColorTable { get; }
-
- public ToolStripProfessionalRenderer(ProfessionalColorTable table)
- {
- ColorTable = table;
- }
- internal Brush GetBrush(Drawing.Color start, Drawing.Color middle, Drawing.Color end, int angle = 90)
- {
- if (start == end && start == middle)
- return Helper.GetBrush(start);
-
- var gradientStops = new GradientStopCollection();
- gradientStops.Add(new GradientStop(Helper.GetColor(start), 0));
- gradientStops.Add(new GradientStop(Helper.GetColor(middle), 0.5));
- gradientStops.Add(new GradientStop(Helper.GetColor(end), 1));
- return new LinearGradientBrush(gradientStops, angle);
- }
- internal Brush GetBrush(Drawing.Color color) => Helper.GetBrush(color);
- internal Brush GetBrush(Drawing.Color start, Drawing.Color end, int angle = 90, bool glassEffect = false)
- {
- if (start == end)
- return Helper.GetBrush(start);
- if (glassEffect)
- {
- var gradientStops = new GradientStopCollection();
- gradientStops.Add(new GradientStop(Helper.GetColor(start), 0));
- gradientStops.Add(new GradientStop(Helper.GetColor(start), 0.3));
- gradientStops.Add(new GradientStop(Helper.GetColor(end), 0.5));
- gradientStops.Add(new GradientStop(Helper.GetColor(end), 1));
- return new LinearGradientBrush(gradientStops, angle);
- }
- return new LinearGradientBrush(Helper.GetColor(start), Helper.GetColor(end), angle);
- }
- private ProfessionalColorTable ct => ColorTable;
- private Brush foreground;
- private Brush disabledForeground;
- private Brush toolBarBorder;
- private Brush toolBarHorizontalBackground;
- private Brush toolBarVerticalBackground;
- private Brush toolBarGripDark;
- private Brush toolBarGripLight;
- private Brush statusBarBackground;
- private Brush statusBarForeground;
- private Brush buttonStaticBackground;
- private Brush buttonStaticBorder;
- private Brush buttonMouseOverBackground;
- private Brush buttonMouseOverBorder;
- private Brush buttonCheckedBackground;
- private Brush buttonCheckedBorder;
- private Brush buttonArrowBackground;
- private Brush comboBoxStaticBackground;
- private Brush comboBoxStaticBorder;
- private Brush comboBoxStaticGlyph;
- private Brush comboBoxMouseOverBackground;
- private Brush comboBoxMouseOverBorder;
- private Brush comboBoxMouseOverGlyph;
- private Brush comboBoxDisabledBackground;
- private Brush comboBoxDisabledBorder;
- private Brush comboBoxDisabledGlyph;
- private Brush textBoxStaticBackground;
- private Brush separatorDark;
- private Brush separatorLight;
- private Brush menuStripStaticBackground;
- private Brush menuStaticBackground;
- private Brush menuStaticBorder;
- private Brush menuMarginBackground;
- private Brush menuQATBackground;
- private Brush menuItemCheckBackground;
- private Brush menuItemCheckBorder;
- private Brush menuItemHighlightBackground;
- private Brush menuItemHighlightBorder;
- private Brush topLevelMenuItemForeground;
- private Brush topLevelMenuItemDisabledForeground;
- internal Brush Foreground => foreground ??= GetBrush(ct.Foreground);
- internal Brush DisabledForeground => disabledForeground ??= GetBrush(ct.DisabledForeground);
- internal Brush ToolBarBorder => toolBarBorder ??= GetBrush(ct.ToolStripBorder);
- internal Brush ToolBarHorizontalBackground => toolBarHorizontalBackground ??= GetBrush(ct.ToolStripGradientBegin, ct.ToolStripGradientMiddle, ct.ToolStripGradientEnd);
- internal Brush ToolBarVerticalBackground => toolBarVerticalBackground ??= GetBrush(ct.ToolStripGradientBegin, ct.ToolStripGradientMiddle, ct.ToolStripGradientEnd, 0);
- internal Brush ToolBarGripDark => toolBarGripDark ??= GetBrush(ct.GripDark);
- internal Brush ToolBarGripLight => toolBarGripLight ??= GetBrush(ct.GripLight);
- internal Brush StatusBarBackground => statusBarBackground ??= GetBrush(ct.StatusStripGradientBegin, ct.StatusStripGradientEnd, ct.StatusStripGradientAngle, ct.StatusStripGradientGlass);
- internal Brush StatusBarForeground => statusBarForeground ??= GetBrush(ct.StatusStripForeground);
- internal Brush ButtonStaticBackground => buttonStaticBackground ??= GetBrush(Drawing.Color.Transparent);
- internal Brush ButtonStaticBorder => buttonStaticBorder ??= GetBrush(Drawing.Color.Transparent);
- internal Brush ButtonMouseOverBackground => buttonMouseOverBackground ??= GetBrush(ct.ButtonSelectedGradientBegin, ct.ButtonSelectedGradientMiddle, ct.ButtonSelectedGradientEnd);
- internal Brush ButtonMouseOverBorder => buttonMouseOverBorder ??= GetBrush(ct.ButtonSelectedHighlightBorder);
- internal Brush ButtonCheckedBackground => buttonCheckedBackground ??= GetBrush(ct.ButtonCheckedGradientBegin, ct.ButtonCheckedGradientMiddle, ct.ButtonCheckedGradientEnd);
- internal Brush ButtonCheckedBorder => buttonCheckedBorder ??= GetBrush(ct.ButtonSelectedHighlightBorder);
- internal Brush ButtonArrowBackground => buttonArrowBackground ??= GetBrush(ct.Foreground);
- internal Brush ComboBoxStaticBackground => comboBoxStaticBackground ??= GetBrush(ct.ComboBoxBackground);
- internal Brush ComboBoxStaticBorder => comboBoxStaticBorder ??= GetBrush(ct.ComboBoxStaticBorder);
- internal Brush ComboBoxStaticGlyph => comboBoxStaticGlyph ??= GetBrush(ct.Foreground);
- internal Brush ComboBoxMouseOverBackground => comboBoxMouseOverBackground ??= GetBrush(ct.ComboBoxButtonSelectedGradientBegin, ct.ComboBoxButtonSelectedGradientEnd);
- internal Brush ComboBoxMouseOverBorder => comboBoxMouseOverBorder ??= GetBrush(ct.ComboBoxBorder);
- internal Brush ComboBoxMouseOverGlyph => comboBoxMouseOverGlyph ??= GetBrush(ct.Foreground);
- internal Brush ComboBoxDisabledBackground => comboBoxDisabledBackground ??= GetBrush(ct.ComboBoxDisabledBackground);
- internal Brush ComboBoxDisabledBorder => comboBoxDisabledBorder ??= GetBrush(ct.ComboBoxStaticBorder);
- internal Brush ComboBoxDisabledGlyph => comboBoxDisabledGlyph ??= GetBrush(ct.DisabledForeground);
- internal Brush TextBoxStaticBackground => textBoxStaticBackground ??= GetBrush(ct.ComboBoxBackground);
- internal Brush SeparatorDark => separatorDark ??= GetBrush(ct.SeparatorDark);
- internal Brush SeparatorLight => separatorLight ??= GetBrush(ct.SeparatorLight);
- internal Brush MenuStripStaticBackground => menuStripStaticBackground ??= GetBrush(ct.MenuStripGradientBegin, ct.MenuStripGradientEnd, 0);
- internal Brush MenuStaticBackground => menuStaticBackground ??= GetBrush(ct.ToolStripDropDownBackground);
- internal Brush MenuStaticBorder => menuStaticBorder ??= GetBrush(ct.MenuBorder);
- internal Brush MenuMarginBackground => menuMarginBackground ??= GetBrush(ct.ImageMarginGradientBegin, ct.ImageMarginGradientMiddle, ct.ImageMarginGradientEnd, 0);
- internal Brush MenuQATBackground => menuQATBackground ??= GetBrush(ct.MenuQATGradientBegin, ct.MenuQATGradientMiddle, ct.MenuQATGradientEnd, 90);
- internal Brush MenuItemCheckBackground => menuItemCheckBackground ??= GetBrush(ct.MenuItemSelectedGradientBegin, ct.MenuItemSelectedGradientEnd);
- internal Brush MenuItemCheckBorder => menuItemCheckBorder ??= GetBrush(ct.MenuItemBorder);
- internal Brush MenuItemHighlightBackground => menuItemHighlightBackground ??= GetBrush(ct.MenuItemSelectedGradientBegin, ct.MenuItemSelectedGradientEnd, 90, ct.MenuItemGradientGlass);
- internal Brush MenuItemHighlightBorder => menuItemHighlightBorder ??= GetBrush(ct.MenuItemBorder);
- internal Brush TopLevelMenuItemForeground => topLevelMenuItemForeground ??= GetBrush(ct.TopLevelMenuItemForeground);
- internal Brush TopLevelMenuItemDisabledForeground => topLevelMenuItemDisabledForeground ??= GetBrush(ct.TopLevelMenuItemDisabledForeground);
- }
- }
|