Postupy: Vykreslení elementu vizuálního stylu
Obor System.Windows.Forms.VisualStyles názvů zveřejňuje VisualStyleElement objekty, které představují prvky uživatelského rozhraní systému Windows podporované vizuálními styly. Toto téma ukazuje, jak pomocí VisualStyleRenderer třídy vykreslitVisualStyleElement, která představuje tlačítka Odhlásit a Vypnout nabídka Start.
Vykreslení elementu vizuálního stylu
VisualStyleRenderer Vytvořte a nastavte ho na prvek, který chcete nakreslit. Všimněte si použití Application.RenderWithVisualStyles vlastnosti a VisualStyleRenderer.IsElementDefined metody; VisualStyleRenderer konstruktor vyvolá výjimku, pokud jsou vizuální styly zakázány nebo prvek není definován.
private: VisualStyleRenderer^ renderer; VisualStyleElement^ element; public: CustomControl() { this->Location = Point(50, 50); this->Size = System::Drawing::Size(200, 200); this->BackColor = SystemColors::ActiveBorder; this->element = VisualStyleElement::StartPanel::LogOffButtons::Normal; if (Application::RenderWithVisualStyles && VisualStyleRenderer::IsElementDefined(element)) { renderer = gcnew VisualStyleRenderer(element); } }
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); } }
Private renderer As VisualStyleRenderer = Nothing Private element As VisualStyleElement = _ VisualStyleElement.StartPanel.LogOffButtons.Normal Public Sub New() Me.Location = New Point(50, 50) Me.Size = New Size(200, 200) Me.BackColor = SystemColors.ActiveBorder If Application.RenderWithVisualStyles And _ VisualStyleRenderer.IsElementDefined(element) Then renderer = New VisualStyleRenderer(element) End If End Sub
DrawBackground Volání metody vykreslení elementuVisualStyleRenderer, který aktuálně představuje.
protected: virtual void OnPaint(PaintEventArgs^ e) override { // Draw the element if the renderer has been set. if (renderer != nullptr) { 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, Point(0, 0), this->ForeColor); } }
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); } }
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) ' Draw the element if the renderer has been set. If (renderer IsNot Nothing) Then renderer.DrawBackground(e.Graphics, Me.ClientRectangle) ' Visual styles are disabled or the element is undefined, ' so just draw a message. Else Me.Text = "Visual styles are disabled." TextRenderer.DrawText(e.Graphics, Me.Text, Me.Font, _ New Point(0, 0), Me.ForeColor) End If End Sub
Probíhá kompilace kódu
Tento příklad vyžaduje:
Vlastní ovládací prvek odvozený z Control třídy.
A Form , který je hostitelem vlastního ovládacího prvku.
Odkazy na obory Systemnázvů , , System.DrawingSystem.Windows.Formsa System.Windows.Forms.VisualStyles obory názvů.
Viz také
.NET Desktop feedback