ButtonRenderer.DrawButton 方法

定义

绘制按钮控件。

重载

名称 说明
DrawButton(Graphics, Rectangle, PushButtonState)

绘制处于指定状态和边界的按钮控件。

DrawButton(Graphics, Rectangle, Boolean, PushButtonState)

绘制处于指定状态和边界以及具有可选焦点矩形的按钮控件。

DrawButton(Graphics, Rectangle, Image, Rectangle, Boolean, PushButtonState)

使用指定的图像和可选焦点矩形绘制处于指定状态和边界的按钮控件。

DrawButton(Graphics, Rectangle, String, Font, Boolean, PushButtonState)

使用指定的文本和可选焦点矩形绘制处于指定状态和边界的按钮控件。

DrawButton(Graphics, Rectangle, String, Font, TextFormatFlags, Boolean, PushButtonState)

使用指定的文本和文本格式以及可选的焦点矩形绘制处于指定状态和边界的按钮控件。

DrawButton(Graphics, Rectangle, String, Font, Image, Rectangle, Boolean, PushButtonState)

使用指定的文本和图像以及可选的焦点矩形绘制处于指定状态和边界的按钮控件。

DrawButton(Graphics, Rectangle, String, Font, TextFormatFlags, Image, Rectangle, Boolean, PushButtonState)

绘制处于指定状态和边界的按钮控件;具有指定文本、文本格式和图像;以及具有可选焦点矩形。

DrawButton(Graphics, Rectangle, PushButtonState)

Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs

绘制处于指定状态和边界的按钮控件。

public:
 static void DrawButton(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::Windows::Forms::VisualStyles::PushButtonState state);
public static void DrawButton(System.Drawing.Graphics g, System.Drawing.Rectangle bounds, System.Windows.Forms.VisualStyles.PushButtonState state);
static member DrawButton : System.Drawing.Graphics * System.Drawing.Rectangle * System.Windows.Forms.VisualStyles.PushButtonState -> unit
Public Shared Sub DrawButton (g As Graphics, bounds As Rectangle, state As PushButtonState)

参数

g
Graphics

Graphics用于绘制按钮的按钮。

bounds
Rectangle

指定 Rectangle 按钮的边界。

state
PushButtonState

PushButtonState指定按钮视觉状态的值之一。

注解

如果在操作系统中启用了视觉样式,并且视觉样式应用于当前应用程序,此方法将使用当前视觉样式绘制按钮。 否则,它将使用经典Windows样式绘制按钮。

适用于

DrawButton(Graphics, Rectangle, Boolean, PushButtonState)

Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs

绘制处于指定状态和边界以及具有可选焦点矩形的按钮控件。

public:
 static void DrawButton(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, bool focused, System::Windows::Forms::VisualStyles::PushButtonState state);
public static void DrawButton(System.Drawing.Graphics g, System.Drawing.Rectangle bounds, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
static member DrawButton : System.Drawing.Graphics * System.Drawing.Rectangle * bool * System.Windows.Forms.VisualStyles.PushButtonState -> unit
Public Shared Sub DrawButton (g As Graphics, bounds As Rectangle, focused As Boolean, state As PushButtonState)

参数

g
Graphics

Graphics用于绘制按钮的按钮。

bounds
Rectangle

指定 Rectangle 按钮的边界。

focused
Boolean

true 在按钮上绘制焦点矩形;否则,为 false.

state
PushButtonState

PushButtonState指定按钮视觉状态的值之一。

注解

如果在操作系统中启用了视觉样式,并且视觉样式应用于当前应用程序,此方法将使用当前视觉样式绘制按钮。 否则,它将使用经典Windows样式绘制按钮。

适用于

DrawButton(Graphics, Rectangle, Image, Rectangle, Boolean, PushButtonState)

Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs

使用指定的图像和可选焦点矩形绘制处于指定状态和边界的按钮控件。

public:
 static void DrawButton(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::Drawing::Image ^ image, System::Drawing::Rectangle imageBounds, bool focused, System::Windows::Forms::VisualStyles::PushButtonState state);
public static void DrawButton(System.Drawing.Graphics g, System.Drawing.Rectangle bounds, System.Drawing.Image image, System.Drawing.Rectangle imageBounds, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
static member DrawButton : System.Drawing.Graphics * System.Drawing.Rectangle * System.Drawing.Image * System.Drawing.Rectangle * bool * System.Windows.Forms.VisualStyles.PushButtonState -> unit
Public Shared Sub DrawButton (g As Graphics, bounds As Rectangle, image As Image, imageBounds As Rectangle, focused As Boolean, state As PushButtonState)

参数

g
Graphics

Graphics用于绘制按钮的按钮。

bounds
Rectangle

指定 Rectangle 按钮的边界。

image
Image

Image 绘制的按钮。

imageBounds
Rectangle

表示 Rectangle 的维度的 image

focused
Boolean

true 在按钮上绘制焦点矩形;否则,为 false.

state
PushButtonState

PushButtonState指定按钮视觉状态的值之一。

注解

如果在操作系统中启用了视觉样式,并且视觉样式应用于当前应用程序,此方法将使用当前视觉样式绘制按钮。 否则,它将使用经典Windows样式绘制按钮。

适用于

DrawButton(Graphics, Rectangle, String, Font, Boolean, PushButtonState)

Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs

使用指定的文本和可选焦点矩形绘制处于指定状态和边界的按钮控件。

public:
 static void DrawButton(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::String ^ buttonText, System::Drawing::Font ^ font, bool focused, System::Windows::Forms::VisualStyles::PushButtonState state);
public static void DrawButton(System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string buttonText, System.Drawing.Font font, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
public static void DrawButton(System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string? buttonText, System.Drawing.Font? font, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
static member DrawButton : System.Drawing.Graphics * System.Drawing.Rectangle * string * System.Drawing.Font * bool * System.Windows.Forms.VisualStyles.PushButtonState -> unit
Public Shared Sub DrawButton (g As Graphics, bounds As Rectangle, buttonText As String, font As Font, focused As Boolean, state As PushButtonState)

参数

g
Graphics

Graphics用于绘制按钮的按钮。

bounds
Rectangle

指定 Rectangle 按钮的边界。

buttonText
String

String 绘制的按钮。

font
Font

Font要应用于buttonText的 。

focused
Boolean

true 在按钮上绘制焦点矩形;否则,为 false.

state
PushButtonState

PushButtonState指定按钮视觉状态的值之一。

示例

下面的代码示例使用 DrawButton(Graphics, Rectangle, String, Font, Boolean, PushButtonState) 自定义控件 OnPaint 方法中的方法绘制由鼠标指针位置确定的状态中的按钮。 该代码示例是 ButtonRenderer 类中的一个较大示例的一部分。

    // Draw the large or small button, depending on the current state.
protected:
    virtual void OnPaint(PaintEventArgs^ e) override
    {
        __super::OnPaint(e);

        // Draw the smaller pressed button image
        if (state == PushButtonState::Pressed)
        {
            // Set the background color to the parent if visual styles
            // are disabled, because DrawParentBackground will only paint
            // over the control background if visual styles are enabled.
            if (Application::RenderWithVisualStyles)
            {
                this->BackColor = Color::Azure;
            }
            else
            {
                this->BackColor = this->Parent->BackColor;
            }


            // If you comment out the call to DrawParentBackground,
            // the background of the control will still be visible
            // outside the pressed button, if visual styles are enabled.
            ButtonRenderer::DrawParentBackground(e->Graphics,
                ClientRectangle, this);
            ButtonRenderer::DrawButton(e->Graphics, ClickRectangle,
                this->Text, this->Font, true, state);
        }

        // Draw the bigger unpressed button image.
        else
        {
            ButtonRenderer::DrawButton(e->Graphics, ClientRectangle,
                this->Text, this->Font, false, state);
        }
    }

    // Draw the smaller pressed button image.
protected:
    virtual void OnMouseDown(MouseEventArgs^ e) override
    {
        __super::OnMouseDown(e);
        this->Text = "Clicked!";
        state = PushButtonState::Pressed;
        Invalidate();
    }

    // Draw the button in the hot state.
protected:
    virtual void OnMouseEnter(EventArgs^ e) override
    {
        __super::OnMouseEnter(e);
        this->Text = "Click here";
        state = PushButtonState::Hot;
        Invalidate();
    }

    // Draw the button in the unpressed state.
protected:
    virtual void OnMouseLeave(EventArgs^ e) override
    {
        __super::OnMouseLeave(e);
        this->Text = "Click here";
        state = PushButtonState::Normal;
        Invalidate();
    }
// Draw the large or small button, depending on the current state.
protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);

    // Draw the smaller pressed button image
    if (state == PushButtonState.Pressed)
    {
        // Set the background color to the parent if visual styles  
        // are disabled, because DrawParentBackground will only paint  
        // over the control background if visual styles are enabled.
        this.BackColor = Application.RenderWithVisualStyles ?
            Color.Azure : this.Parent.BackColor;

        // If you comment out the call to DrawParentBackground, 
        // the background of the control will still be visible 
        // outside the pressed button, if visual styles are enabled.
        ButtonRenderer.DrawParentBackground(e.Graphics,
            ClientRectangle, this);
        ButtonRenderer.DrawButton(e.Graphics, ClickRectangle,
            this.Text, this.Font, true, state);
    }

    // Draw the bigger unpressed button image.
    else
    {
        ButtonRenderer.DrawButton(e.Graphics, ClientRectangle,
            this.Text, this.Font, false, state);
    }
}

// Draw the smaller pressed button image.
protected override void OnMouseDown(MouseEventArgs e)
{
    base.OnMouseDown(e);
    this.Text = "Clicked!";
    state = PushButtonState.Pressed;
    Invalidate();
}

// Draw the button in the hot state. 
protected override void OnMouseEnter(EventArgs e)
{
    base.OnMouseEnter(e);
    this.Text = "Click here";
    state = PushButtonState.Hot;
    Invalidate();
}

// Draw the button in the unpressed state.
protected override void OnMouseLeave(EventArgs e)
{
    base.OnMouseLeave(e);
    this.Text = "Click here";
    state = PushButtonState.Normal;
    Invalidate();
}
' Draw the large or small button, depending on the current state.
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
    MyBase.OnPaint(e)

    ' Draw the smaller pressed button image.
    If state = PushButtonState.Pressed Then
        ' Set the background color to the parent if visual styles  
        ' are disabled, because DrawParentBackground will only paint  
        ' over the control background if visual styles are enabled.
        If Application.RenderWithVisualStyles Then
            Me.BackColor = Color.Azure
        Else
            Me.BackColor = Me.Parent.BackColor
        End If

        ' If you comment out the call to DrawParentBackground,   
        ' the background of the control will still be visible 
        ' outside the pressed button, if visual styles are enabled.
        ButtonRenderer.DrawParentBackground(e.Graphics, _
            Me.ClientRectangle, Me)
        ButtonRenderer.DrawButton(e.Graphics, ClickRectangle, _
            Me.Text, Me.Font, True, state)

    ' Draw the bigger unpressed button image.
    Else
        ButtonRenderer.DrawButton(e.Graphics, Me.ClientRectangle, _
            Me.Text, Me.Font, False, state)
    End If
End Sub

' Draw the smaller pressed button image.
Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
    MyBase.OnMouseDown(e)
    With Me
        .Text = "Clicked!"
        .state = PushButtonState.Pressed
    End With
    Invalidate()
End Sub

' Draw the button in the hot state. 
Protected Overrides Sub OnMouseEnter(ByVal e As EventArgs)
    MyBase.OnMouseEnter(e)
    With Me
        .Text = "Click here"
        .state = PushButtonState.Hot
    End With
    Invalidate()
End Sub

' Draw the button in the unpressed state.
Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)
    MyBase.OnMouseLeave(e)
    With Me
        .Text = "Click here"
        .state = PushButtonState.Normal
    End With
    Invalidate()
End Sub

注解

如果在操作系统中启用了视觉样式,并且视觉样式应用于当前应用程序,此方法将使用当前视觉样式绘制按钮。 否则,它将使用经典Windows样式绘制按钮。

适用于

DrawButton(Graphics, Rectangle, String, Font, TextFormatFlags, Boolean, PushButtonState)

Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs

使用指定的文本和文本格式以及可选的焦点矩形绘制处于指定状态和边界的按钮控件。

public:
 static void DrawButton(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::String ^ buttonText, System::Drawing::Font ^ font, System::Windows::Forms::TextFormatFlags flags, bool focused, System::Windows::Forms::VisualStyles::PushButtonState state);
public static void DrawButton(System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string buttonText, System.Drawing.Font font, System.Windows.Forms.TextFormatFlags flags, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
public static void DrawButton(System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string? buttonText, System.Drawing.Font? font, System.Windows.Forms.TextFormatFlags flags, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
static member DrawButton : System.Drawing.Graphics * System.Drawing.Rectangle * string * System.Drawing.Font * System.Windows.Forms.TextFormatFlags * bool * System.Windows.Forms.VisualStyles.PushButtonState -> unit
Public Shared Sub DrawButton (g As Graphics, bounds As Rectangle, buttonText As String, font As Font, flags As TextFormatFlags, focused As Boolean, state As PushButtonState)

参数

g
Graphics

Graphics用于绘制按钮的按钮。

bounds
Rectangle

指定 Rectangle 按钮的边界。

buttonText
String

String 绘制的按钮。

font
Font

Font要应用于buttonText的 。

flags
TextFormatFlags

要应用于TextFormatFlags的值buttonText的按位组合。

focused
Boolean

true 在按钮上绘制焦点矩形;否则,为 false.

state
PushButtonState

PushButtonState指定按钮视觉状态的值之一。

注解

如果在操作系统中启用了视觉样式,并且视觉样式应用于当前应用程序,此方法将使用当前视觉样式绘制按钮。 否则,它将使用经典Windows样式绘制按钮。

适用于

DrawButton(Graphics, Rectangle, String, Font, Image, Rectangle, Boolean, PushButtonState)

Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs

使用指定的文本和图像以及可选的焦点矩形绘制处于指定状态和边界的按钮控件。

public:
 static void DrawButton(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::String ^ buttonText, System::Drawing::Font ^ font, System::Drawing::Image ^ image, System::Drawing::Rectangle imageBounds, bool focused, System::Windows::Forms::VisualStyles::PushButtonState state);
public static void DrawButton(System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string buttonText, System.Drawing.Font font, System.Drawing.Image image, System.Drawing.Rectangle imageBounds, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
public static void DrawButton(System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string? buttonText, System.Drawing.Font? font, System.Drawing.Image image, System.Drawing.Rectangle imageBounds, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
static member DrawButton : System.Drawing.Graphics * System.Drawing.Rectangle * string * System.Drawing.Font * System.Drawing.Image * System.Drawing.Rectangle * bool * System.Windows.Forms.VisualStyles.PushButtonState -> unit
Public Shared Sub DrawButton (g As Graphics, bounds As Rectangle, buttonText As String, font As Font, image As Image, imageBounds As Rectangle, focused As Boolean, state As PushButtonState)

参数

g
Graphics

Graphics用于绘制按钮的按钮。

bounds
Rectangle

指定 Rectangle 按钮的边界。

buttonText
String

String 绘制的按钮。

font
Font

Font要应用于buttonText的 。

image
Image

Image 绘制的按钮。

imageBounds
Rectangle

表示 Rectangle 的维度的 image

focused
Boolean

true 在按钮上绘制焦点矩形;否则,为 false.

state
PushButtonState

PushButtonState指定按钮视觉状态的值之一。

注解

如果在操作系统中启用了视觉样式,并且视觉样式应用于当前应用程序,此方法将使用当前视觉样式绘制按钮。 否则,它将使用经典Windows样式绘制按钮。

适用于

DrawButton(Graphics, Rectangle, String, Font, TextFormatFlags, Image, Rectangle, Boolean, PushButtonState)

Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs
Source:
ButtonRenderer.cs

绘制处于指定状态和边界的按钮控件;具有指定文本、文本格式和图像;以及具有可选焦点矩形。

public:
 static void DrawButton(System::Drawing::Graphics ^ g, System::Drawing::Rectangle bounds, System::String ^ buttonText, System::Drawing::Font ^ font, System::Windows::Forms::TextFormatFlags flags, System::Drawing::Image ^ image, System::Drawing::Rectangle imageBounds, bool focused, System::Windows::Forms::VisualStyles::PushButtonState state);
public static void DrawButton(System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string buttonText, System.Drawing.Font font, System.Windows.Forms.TextFormatFlags flags, System.Drawing.Image image, System.Drawing.Rectangle imageBounds, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
public static void DrawButton(System.Drawing.Graphics g, System.Drawing.Rectangle bounds, string? buttonText, System.Drawing.Font? font, System.Windows.Forms.TextFormatFlags flags, System.Drawing.Image image, System.Drawing.Rectangle imageBounds, bool focused, System.Windows.Forms.VisualStyles.PushButtonState state);
static member DrawButton : System.Drawing.Graphics * System.Drawing.Rectangle * string * System.Drawing.Font * System.Windows.Forms.TextFormatFlags * System.Drawing.Image * System.Drawing.Rectangle * bool * System.Windows.Forms.VisualStyles.PushButtonState -> unit
Public Shared Sub DrawButton (g As Graphics, bounds As Rectangle, buttonText As String, font As Font, flags As TextFormatFlags, image As Image, imageBounds As Rectangle, focused As Boolean, state As PushButtonState)

参数

g
Graphics

Graphics用于绘制按钮的按钮。

bounds
Rectangle

指定 Rectangle 按钮的边界。

buttonText
String

String 绘制的按钮。

font
Font

Font要应用于buttonText的 。

flags
TextFormatFlags

要应用于TextFormatFlags的值buttonText的按位组合。

image
Image

Image 绘制的按钮。

imageBounds
Rectangle

表示 Rectangle 的维度的 image

focused
Boolean

true 在按钮上绘制焦点矩形;否则,为 false.

state
PushButtonState

PushButtonState指定按钮视觉状态的值之一。

注解

如果在操作系统中启用了视觉样式,并且视觉样式应用于当前应用程序,此方法将使用当前视觉样式绘制按钮。 否则,它将使用经典Windows样式绘制按钮。

适用于