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 | < Назад | Оглавление | Далее > |