netlib.narod.ru< Назад | Оглавление | Далее >

Системные цвета

Причина того, что BrushesBlack — не очень хорошая идея для вывода текста, в том, что пользователь Windows может открыть диалоговое окно Display Properties (Свойства: экран) (из панели управления, или щелкнув правой кнопкой по рабочему столу), выбрать вкладку Appearance (Оформление) и выбрать цветовую схему, в которой черные цвета фона окон и элементов управления, например High Contrast Black (Контрастная черная). Люди с плохим зрением или дальтоники часто задают такие высококонтрастные цветовые схемы, и вы определенно не поможете им, если будете отображать свой текст черным!

Добро пожаловать в мир системных цветов, который правильнее называть цветами, выбираемыми пользователем (user-preference colors). В диалоговом окне свойств дисплея, пользователи могут выбирать свои цветовые схемы. Сама Windows содержит 29 устанавливаемых пользователем цветов, применяемых в качестве цветов различных компонентов пользовательского интерфейса. 26 этих цветов доступны в среде Windows Forms.

Можно получить значения этих цветов из класса SystemColors, который состоит из 26 доступных только для чтения свойств, каждое из которых является объектом Color.


Статические свойства SystemColors



Тип Свойство Доступ Комментарий

Color ActiveBorder Чтение Рамка активного окна
Color ActiveCaption Чтение Заголовок активного окна
Color ActiveCaptionText Чтение Текст заголовка активного окна
Color AppWorkspace Чтение Фон рабочего пространства в многодокументном интерфейсе
Color Control Чтение Цвет фона элементов управления
Color ControlDark Чтение Тень трехмерных элементов управления
Color ControlDarkDark Чтение Темная тень трехмерных элементов управления
Color ControlLight Чтение Выделение трехмерных элементов управления
Color ControlLightLight Чтение Светлое выделение трехмерных элементов управления
Color ControlText Чтение Цвет текста элементов управления
Color Desktop Чтение Рабочий стол Windows
Color GrayText Чтение Текст неактивного элемента управления
Color Highlight Чтение Цвет фона выделенного текста
Color HighlightText Чтение Выделенный текст
Color HotTrack Чтение След
Color InactiveBorder Чтение Рамка неактивного окна
Color InactiveCaption Чтение Заголовок неактивного окна
Color InactiveCaptionText Чтение Текст заголовка неактивного окна
Color Info Чтение Фон всплывающей подсказки (ToolTip)
Color InfoText Чтение Текст всплывающей подсказки (ToolTip)
Color Menu Чтение Фон меню
Color MenuText Чтение Текст меню
Color ScrollBar Чтение Фон полосы прокрутки
Color Window Чтение Фон окна
Color WindowFrame Чтение Тонкая рамка окна
Color WindowText Чтение Текст в окне


Можно создать Pen или Brush с одним из этих цветов таким образом:

  Pen pen = new Pen(SystemColors.ControlText);
  Brush brush = new SolidBrush(SystemColors.ControlText);

Однако обычно этого не делают, так как в пространство имен System.Drawing также входят классы SystemPens и SystemBrushes. SystemPens содержит 15 статических неизменяемых свойств, возвращающих объекты типа Pen:


Свойства SystemPens



Тип Свойство Доступ

Pen ActiveCaptionText Чтение
Pen Control Чтение
Pen ControlDark Чтение
Pen ControlDarkDark Чтение
Pen ControlLight Чтение
Pen ControlLightLight Чтение
Pen ControlText Чтение
Pen GrayText Чтение
Pen Highlight Чтение
Pen HighlightText Чтение
Pen InactiveCaptionText Чтение
Pen InfoText Чтение
Pen MenuText Чтение
Pen WindowFrame Чтение
Pen WindowText Чтение


Класс SystemBrushes содержит 21 статическое неизменяемое свойство, возвращающее объекты типа Brush:


Свойства SystemBrushes



Тип Свойство Доступ

Brush ActiveBorder Чтение
Brush ActiveCaption Чтение
Brush ActiveCaptionText Чтение
Brush AppWorkspace Чтение
Brush Control Чтение
Brush ControlDark Чтение
Brush ControlDarkDark Чтение
Brush ControlLight Чтение
Brush ControlLightLight Чтение
Brush ControlText Чтение
Brush Desktop Чтение
Brush Highlight Чтение
Brush HighlightText Чтение
Brush HotTrack Чтение
Brush InactiveBorder Чтение
Brush InactiveCaption Чтение
Brush Info Чтение
Brush Menu Чтение
Brush ScrollBar Чтение
Brush Window Чтение
Brush WindowText Чтение


Довольно странно, что не все системные цвета, относящиеся к тексту, включены в класс SystemBrushes. Однако, если нужны Pen или Brush, не входящие в классы SystemPens или SystemBrushes, их всегда можно создать, используя одно из свойств SystemColors в качестве параметра одного из этих статических методов:

  Pen pen = SystemPens.FromSystemColor(SystemColors.ActiveBorder);
  Brush brush = SystemBrushes.FromSystemColor(SystemColors.MenuText);

netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz