Практическое руководство. Отображение элементов с использованием визуальных стилей
System.Windows.Forms.VisualStyles Пространство имен предоставляет VisualStyleElement элементы пользовательского интерфейса, поддерживаемого стилями оформления интерфейса объекты, представляющие пользователя Windows. В этом разделе демонстрируется использование VisualStyleRenderer класс для подготовки к просмотру VisualStyleElement , представляющий Выход и завершение работы кнопок, меню «Пуск».
Для подготовки к просмотру элемента визуального стиля
Создание VisualStyleRenderer и присвойте ему значение для рисования элемента. Обратите внимание на использование Application.RenderWithVisualStyles свойство и VisualStyleRenderer.IsElementDefined метод; VisualStyleRenderer конструктор выдаст исключение, если стили оформления отключены или элемент не определен.
private VisualStyleRenderer renderer = null; private readonly VisualStyleElement element = VisualStyleElement.StartPanel.LogOffButtons.Normal; public CustomControl() { this.Location = new Point(50, 50); this.Size = new Size(200, 200); this.BackColor = SystemColors.ActiveBorder; if (Application.RenderWithVisualStyles && VisualStyleRenderer.IsElementDefined(element)) { renderer = new VisualStyleRenderer(element); } }
Вызовите DrawBackground способ визуализации элемента, который VisualStyleRenderer в данный момент представляет.
protected override void OnPaint(PaintEventArgs e) { // Draw the element if the renderer has been set. if (renderer != null) { renderer.DrawBackground(e.Graphics, this.ClientRectangle); } // Visual styles are disabled or the element is undefined, // so just draw a message. else { this.Text = "Visual styles are disabled."; TextRenderer.DrawText(e.Graphics, this.Text, this.Font, new Point(0, 0), this.ForeColor); } }
Компиляция кода
Для этого примера требуются:
Пользовательские элементы управления, производные от Control класса.
Объект Form , на котором размещается пользовательский элемент управления.
Ссылки на System, System.Drawing, System.Windows.Forms, и System.Windows.Forms.VisualStyles пространства имен.