GroupBoxRenderer Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt methoden voor het weergeven van een groepsvak met of zonder visuele stijlen. Deze klasse kan niet worden overgenomen.
public ref class GroupBoxRenderer sealed
public ref class GroupBoxRenderer abstract sealed
public sealed class GroupBoxRenderer
public static class GroupBoxRenderer
type GroupBoxRenderer = class
Public NotInheritable Class GroupBoxRenderer
Public Class GroupBoxRenderer
- Overname
-
GroupBoxRenderer
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een aangepast besturingselement maakt dat gebruikmaakt van de DrawGroupBox methode om een groepsvak met een dubbele rand te tekenen als visuele stijlen zijn ingeschakeld.
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
#using <System.dll>
using namespace System;
using namespace System::Drawing;
using namespace System::Windows::Forms;
using namespace System::Windows::Forms::VisualStyles;
namespace GroupBoxRendererSample
{
public ref class CustomGroupBox : public Control
{
private:
Rectangle innerRectangle;
private:
GroupBoxState state;
private:
FlowLayoutPanel^ panel;
public:
CustomGroupBox() : Control()
{
innerRectangle = Rectangle();
state = GroupBoxState::Normal;
panel = gcnew FlowLayoutPanel();
this->Size = System::Drawing::Size(200, 200);
this->Location = Point(10, 10);
this->Controls->Add(panel);
this->Text = "CustomGroupBox";
this->Font = SystemFonts::IconTitleFont;
innerRectangle.X = ClientRectangle.X + 5;
innerRectangle.Y = ClientRectangle.Y + 15;
innerRectangle.Width = ClientRectangle.Width - 10;
innerRectangle.Height = ClientRectangle.Height - 20;
panel->FlowDirection = FlowDirection::TopDown;
panel->Location = Point(innerRectangle.X + 5,
innerRectangle.Y + 5);
panel->Size = System::Drawing::Size(innerRectangle.Width - 10,
innerRectangle.Height - 10);
}
// Draw the group box in the current state.
protected:
virtual void OnPaint(PaintEventArgs^ e) override
{
__super::OnPaint(e);
GroupBoxRenderer::DrawGroupBox(e->Graphics, ClientRectangle,
this->Text, this->Font, state);
// Draw an additional inner border if visual styles are enabled.
if (Application::RenderWithVisualStyles)
{
GroupBoxRenderer::DrawGroupBox(e->Graphics, innerRectangle,
state);
}
}
// Pass added controls to the internal FlowLayoutPanel.
protected:
virtual void OnControlAdded(ControlEventArgs^ e) override
{
__super::OnControlAdded(e);
// Ensure that you do not add the panel itself.
if (e->Control != this->panel)
{
this->Controls->Remove(e->Control);
panel->Controls->Add(e->Control);
}
}
};
ref class Form1 : public Form
{
public:
Form1() : Form()
{
CustomGroupBox^ groupBox1 = gcnew CustomGroupBox();
groupBox1->Text = "Radio Button Display";
Controls->Add(groupBox1);
// Add some radio buttons to test the CustomGroupBox.
int count = 8;
array<RadioButton^>^ buttonArray =
gcnew array<RadioButton^>(count);
for (int i = 0; i < count; i++)
{
buttonArray[i] = gcnew RadioButton();
buttonArray[i]->Text = "Button " + (i + 1).ToString();
groupBox1->Controls->Add(buttonArray[i]);
}
if (Application::RenderWithVisualStyles)
{
this->Text = "Visual Styles Enabled";
}
else
{
this->Text = "Visual Styles Disabled";
}
}
};
}
[STAThread]
int main()
{
// If you do not call EnableVisualStyles below, then
// GroupBoxRenderer automatically detects this and draws
// the group box without visual styles.
Application::EnableVisualStyles();
Application::Run(gcnew GroupBoxRendererSample::Form1());
}
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;
namespace GroupBoxRendererSample
{
class Form1 : Form
{
private Button button1;
public Form1()
: base()
{
CustomGroupBox GroupBox1 = new CustomGroupBox();
button1 = new Button();
GroupBox1.Text = "Radio Button Display";
this.button1.Location = new System.Drawing.Point(205, 231);
this.button1.Size = new System.Drawing.Size(105, 23);
this.button1.Text = "Toggle Visual Styles";
this.button1.Click += new System.EventHandler(this.button1_Click);
Controls.Add(GroupBox1);
this.Controls.Add(this.button1);
// Add some radio buttons to test the CustomGroupBox.
int count = 8;
RadioButton[] ButtonArray = new RadioButton[count];
for (int i = 0; i < count; i++)
{
ButtonArray[i] = new RadioButton();
ButtonArray[i].Text = "Button " + (i + 1).ToString();
GroupBox1.Controls.Add(ButtonArray[i]);
}
if (Application.RenderWithVisualStyles)
this.Text = "Visual Styles Enabled";
else
this.Text = "Visual Styles Disabled";
}
[STAThread]
static void Main()
{
// If you do not call EnableVisualStyles below, then
// GroupBoxRenderer automatically detects this and draws
// the group box without visual styles.
Application.EnableVisualStyles();
Application.Run(new Form1());
}
// Match application style and toggle visual styles off
// and on for the application.
private void button1_Click(object sender, EventArgs e)
{
GroupBoxRenderer.RenderMatchingApplicationState = true;
Application.VisualStyleState =
Application.VisualStyleState ^
VisualStyleState.ClientAndNonClientAreasEnabled;
if (Application.RenderWithVisualStyles)
this.Text = "Visual Styles Enabled";
else
this.Text = "Visual Styles Disabled";
}
}
public class CustomGroupBox : Control
{
private Rectangle innerRectangle = new Rectangle();
private GroupBoxState state = GroupBoxState.Normal;
private FlowLayoutPanel panel = new FlowLayoutPanel();
public CustomGroupBox()
: base()
{
this.Size = new Size(200, 200);
this.Location = new Point(10, 10);
this.Controls.Add(panel);
this.Text = "CustomGroupBox";
this.Font = SystemFonts.IconTitleFont;
innerRectangle.X = ClientRectangle.X + 5;
innerRectangle.Y = ClientRectangle.Y + 15;
innerRectangle.Width = ClientRectangle.Width - 10;
innerRectangle.Height = ClientRectangle.Height - 20;
panel.FlowDirection = FlowDirection.TopDown;
panel.Location = new Point(innerRectangle.X + 5,
innerRectangle.Y + 5);
panel.Size = new Size(innerRectangle.Width - 10,
innerRectangle.Height - 10);
}
// Draw the group box in the current state.
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
GroupBoxRenderer.DrawGroupBox(e.Graphics, ClientRectangle,
this.Text, this.Font, state);
// Draw an additional inner border if visual styles are enabled.
if (Application.RenderWithVisualStyles)
{
GroupBoxRenderer.DrawGroupBox(e.Graphics, innerRectangle, state);
}
}
// Pass added controls to the internal FlowLayoutPanel.
protected override void OnControlAdded(ControlEventArgs e)
{
base.OnControlAdded(e);
// Ensure that you do not add the panel itself.
if (e.Control != this.panel)
{
this.Controls.Remove(e.Control);
panel.Controls.Add(e.Control);
}
}
}
}
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Windows.Forms.VisualStyles
Class Form1
Inherits Form
Private WithEvents button1 As Button
Public Sub New()
Dim GroupBox1 As New CustomGroupBox()
button1 = New Button()
GroupBox1.Text = "Radio Button Display"
Me.button1.Location = New System.Drawing.Point(185, 231)
Me.button1.Size = New System.Drawing.Size(105, 23)
Me.button1.Text = "Toggle Visual Styles"
Controls.Add(GroupBox1)
Me.Controls.Add(Me.button1)
' Add some radio buttons to test the CustomGroupBox.
Dim count As Integer = 8
Dim ButtonArray(count) As RadioButton
For i = 0 To count - 1
ButtonArray(i) = New RadioButton()
ButtonArray(i).Text = "Button " +(i + 1).ToString()
GroupBox1.Controls.Add(ButtonArray(i))
Next
If Application.RenderWithVisualStyles Then
Me.Text = "Visual Styles Enabled"
Else
Me.Text = "Visual Styles Disabled"
End If
End Sub
<STAThread()> _
Shared Sub Main()
' If you do not call EnableVisualStyles below, then
' GroupBoxRenderer automatically detects this and draws
' the group box without visual styles.
Application.EnableVisualStyles()
Application.Run(New Form1())
End Sub
' Match application style and toggle visual styles off
' and on for the application.
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles button1.Click
GroupBoxRenderer.RenderMatchingApplicationState = True
Application.VisualStyleState = _
Application.VisualStyleState Xor _
VisualStyleState.ClientAndNonClientAreasEnabled
If Application.RenderWithVisualStyles Then
Me.Text = "Visual Styles Enabled"
Else
Me.Text = "Visual Styles Disabled"
End If
End Sub
End Class
Public Class CustomGroupBox
Inherits Control
Private innerRectangle As New Rectangle()
Private state As GroupBoxState = GroupBoxState.Normal
Private panel As New FlowLayoutPanel()
Public Sub New()
Me.Size = New Size(200, 200)
Me.Location = New Point(10, 10)
Me.Controls.Add(panel)
Me.Text = "CustomGroupBox"
Me.Font = SystemFonts.IconTitleFont
innerRectangle.X = ClientRectangle.X + 5
innerRectangle.Y = ClientRectangle.Y + 15
innerRectangle.Width = ClientRectangle.Width - 10
innerRectangle.Height = ClientRectangle.Height - 20
panel.FlowDirection = FlowDirection.TopDown
panel.Location = New Point(innerRectangle.X + 5, innerRectangle.Y + 5)
panel.Size = New Size(innerRectangle.Width - 10, innerRectangle.Height - 10)
End Sub
' Draw the group box in the current state.
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
MyBase.OnPaint(e)
GroupBoxRenderer.DrawGroupBox(e.Graphics, ClientRectangle, Me.Text, Me.Font, state)
' Draw an additional inner border if visual styles are enabled.
If Application.RenderWithVisualStyles Then
GroupBoxRenderer.DrawGroupBox(e.Graphics, innerRectangle, state)
End If
End Sub
' Pass added controls to the internal FlowLayoutPanel.
Protected Overrides Sub OnControlAdded(ByVal e As ControlEventArgs)
MyBase.OnControlAdded(e)
' Ensure that you do not add the panel itself.
If e.Control IsNot Me.panel Then
Me.Controls.Remove(e.Control)
panel.Controls.Add(e.Control)
End If
End Sub
End Class
Opmerkingen
De GroupBoxRenderer klasse biedt een set static methoden die kunnen worden gebruikt om een groepsvak besturingselement weer te geven. Het weergeven van een besturingselement verwijst naar het tekenen van de gebruikersinterface van een besturingselement. Als u een groepsvak wilt tekenen, gebruikt u een van de DrawGroupBox methoden. Deze methoden bieden verschillende opties voor teksttekening.
Als visuele stijlen zijn ingeschakeld in het besturingssysteem en visuele stijlen worden toegepast op de huidige toepassing, DrawGroupBox tekent u het groepsvak met de huidige visuele stijl. Anders tekent DrawGroupBox het groepsvak met de klassieke Windows stijl. Dit is handig als u een aangepast besturingselement tekent dat automatisch overeenkomt met de huidige instelling van de visuele stijl van het besturingssysteem.
Deze klasse verpakt de functionaliteit van een System.Windows.Forms.VisualStyles.VisualStyleRenderer die is ingesteld op een van de elementen die worden weergegeven door de klasse System.Windows.Forms.VisualStyles.VisualStyleElement.Button.GroupBox. Zie Weergavebesturingselementen met visuele stijlen voor meer informatie.
Eigenschappen
| Name | Description |
|---|---|
| RenderMatchingApplicationState |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de renderer de toepassingsstatus gebruikt om de weergavestijl te bepalen. |
Methoden
| Name | Description |
|---|---|
| DrawGroupBox(Graphics, Rectangle, GroupBoxState) |
Hiermee tekent u een groepsvak in de opgegeven status en grenzen. |
| DrawGroupBox(Graphics, Rectangle, String, Font, Color, GroupBoxState) |
Hiermee tekent u een groepsvak in de opgegeven status en grenzen, met de opgegeven tekst, het lettertype en de kleur. |
| DrawGroupBox(Graphics, Rectangle, String, Font, Color, TextFormatFlags, GroupBoxState) |
Hiermee tekent u een groepsvak in de opgegeven status en grenzen, met de opgegeven tekst, het lettertype, de kleur en de tekstopmaak. |
| DrawGroupBox(Graphics, Rectangle, String, Font, GroupBoxState) |
Hiermee tekent u een groepsvak in de opgegeven status en grenzen, met de opgegeven tekst en het opgegeven lettertype. |
| DrawGroupBox(Graphics, Rectangle, String, Font, TextFormatFlags, GroupBoxState) |
Hiermee tekent u een groepsvak in de opgegeven status en grenzen, met de opgegeven tekst, het lettertype en de tekstopmaak. |
| DrawParentBackground(Graphics, Rectangle, Control) |
Hiermee tekent u de achtergrond van het bovenliggende besturingselement in het opgegeven gebied. |
| IsBackgroundPartiallyTransparent(GroupBoxState) |
Hiermee wordt aangegeven of de achtergrond van het groepsvak semitransparante of alfa-blended stukken bevat. |