|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Diagnostics.CodeAnalysis;
namespace System.Drawing
{
public static class SystemColors
{
internal static bool s_useAlternativeColorSet;
public static Color ActiveBorder => Color.FromKnownColor(KnownColor.ActiveBorder);
public static Color ActiveCaption => Color.FromKnownColor(KnownColor.ActiveCaption);
public static Color ActiveCaptionText => Color.FromKnownColor(KnownColor.ActiveCaptionText);
public static Color AppWorkspace => Color.FromKnownColor(KnownColor.AppWorkspace);
public static Color ButtonFace => Color.FromKnownColor(KnownColor.ButtonFace);
public static Color ButtonHighlight => Color.FromKnownColor(KnownColor.ButtonHighlight);
public static Color ButtonShadow => Color.FromKnownColor(KnownColor.ButtonShadow);
public static Color Control => Color.FromKnownColor(KnownColor.Control);
public static Color ControlDark => Color.FromKnownColor(KnownColor.ControlDark);
public static Color ControlDarkDark => Color.FromKnownColor(KnownColor.ControlDarkDark);
public static Color ControlLight => Color.FromKnownColor(KnownColor.ControlLight);
public static Color ControlLightLight => Color.FromKnownColor(KnownColor.ControlLightLight);
public static Color ControlText => Color.FromKnownColor(KnownColor.ControlText);
public static Color Desktop => Color.FromKnownColor(KnownColor.Desktop);
public static Color GradientActiveCaption => Color.FromKnownColor(KnownColor.GradientActiveCaption);
public static Color GradientInactiveCaption => Color.FromKnownColor(KnownColor.GradientInactiveCaption);
public static Color GrayText => Color.FromKnownColor(KnownColor.GrayText);
public static Color Highlight => Color.FromKnownColor(KnownColor.Highlight);
public static Color HighlightText => Color.FromKnownColor(KnownColor.HighlightText);
public static Color HotTrack => Color.FromKnownColor(KnownColor.HotTrack);
public static Color InactiveBorder => Color.FromKnownColor(KnownColor.InactiveBorder);
public static Color InactiveCaption => Color.FromKnownColor(KnownColor.InactiveCaption);
public static Color InactiveCaptionText => Color.FromKnownColor(KnownColor.InactiveCaptionText);
public static Color Info => Color.FromKnownColor(KnownColor.Info);
public static Color InfoText => Color.FromKnownColor(KnownColor.InfoText);
public static Color Menu => Color.FromKnownColor(KnownColor.Menu);
public static Color MenuBar => Color.FromKnownColor(KnownColor.MenuBar);
public static Color MenuHighlight => Color.FromKnownColor(KnownColor.MenuHighlight);
public static Color MenuText => Color.FromKnownColor(KnownColor.MenuText);
public static Color ScrollBar => Color.FromKnownColor(KnownColor.ScrollBar);
public static Color Window => Color.FromKnownColor(KnownColor.Window);
public static Color WindowFrame => Color.FromKnownColor(KnownColor.WindowFrame);
public static Color WindowText => Color.FromKnownColor(KnownColor.WindowText);
/// <summary>
/// When <see langword="true"/>, system <see cref="KnownColor"/> values will return
/// the alternative color set (as returned by <see cref="SystemColors"/> statics or
/// <see cref="Color.FromKnownColor(KnownColor)"/>). This is currently "dark mode"
/// variants of the system colors.
/// </summary>
/// <remarks>
/// <para>
/// <see cref="KnownColor"/> <see cref="Color"/> values are always looked up every
/// time you use them and do not retain any other context. As such, existing
/// <see cref="Color"/> values will change when this property is set.
/// </para>
/// <para>
/// On Windows, system <see cref="KnownColor"/> values will always return the current
/// Windows color when the OS has a high contrast theme enabled.
/// </para>
/// </remarks>
[Experimental(Experimentals.SystemColorsDiagId, UrlFormat = Experimentals.SharedUrlFormat)]
public static bool UseAlternativeColorSet
{
get => s_useAlternativeColorSet;
set => s_useAlternativeColorSet = value;
}
}
}
|