ButtonRenderer.DrawButton 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
绘制按钮控件。
重载
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)
在指定边界内绘制指定状态的按钮控件。
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)
参数
- state
- PushButtonState
PushButtonState 值之一,指定按钮的可视状态。
注解
如果在操作系统中启用了视觉样式,并且视觉样式应用于当前应用程序,则此方法将使用当前视觉样式绘制按钮。 否则,它将使用经典 Windows 样式绘制按钮。
适用于
DrawButton(Graphics, Rectangle, Boolean, PushButtonState)
在指定边界内使用一个可选焦点矩形绘制指定状态的按钮控件。
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)
参数
- focused
- Boolean
为 true
,则在按钮上绘制一个聚焦框;否则为 false
。
- state
- PushButtonState
PushButtonState 值之一,指定按钮的可视状态。
注解
如果在操作系统中启用了视觉样式,并且视觉样式应用于当前应用程序,则此方法将使用当前视觉样式绘制按钮。 否则,它将使用经典 Windows 样式绘制按钮。
适用于
DrawButton(Graphics, Rectangle, Image, Rectangle, Boolean, PushButtonState)
在指定边界内使用指定图像和一个可选焦点矩形绘制指定状态的按钮控件。
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)
参数
- focused
- Boolean
为 true
,则在按钮上绘制一个聚焦框;否则为 false
。
- state
- PushButtonState
PushButtonState 值之一,指定按钮的可视状态。
注解
如果在操作系统中启用了视觉样式,并且视觉样式应用于当前应用程序,则此方法将使用当前视觉样式绘制按钮。 否则,它将使用经典 Windows 样式绘制按钮。
适用于
DrawButton(Graphics, Rectangle, String, Font, Boolean, PushButtonState)
在指定边界内使用指定文本和一个可选焦点矩形绘制指定状态的按钮控件。
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)
参数
- focused
- Boolean
为 true
,则在按钮上绘制一个聚焦框;否则为 false
。
- state
- PushButtonState
PushButtonState 值之一,指定按钮的可视状态。
示例
下面的代码示例在自定义控件的 OnPaint 方法中使用 DrawButton(Graphics, Rectangle, String, Font, Boolean, PushButtonState) 方法,以鼠标指针的位置确定的状态绘制按钮。 此代码示例是为 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)
在指定边界内使用指定文本、文本格式和一个可选焦点矩形绘制指定状态的按钮控件。
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)
参数
- flags
- TextFormatFlags
TextFormatFlags 值的按位组合,该组合应用于 buttonText
。
- focused
- Boolean
为 true
,则在按钮上绘制一个聚焦框;否则为 false
。
- state
- PushButtonState
PushButtonState 值之一,指定按钮的可视状态。
注解
如果在操作系统中启用了视觉样式,并且视觉样式应用于当前应用程序,则此方法将使用当前视觉样式绘制按钮。 否则,它将使用经典 Windows 样式绘制按钮。
适用于
DrawButton(Graphics, Rectangle, String, Font, Image, Rectangle, Boolean, PushButtonState)
在指定边界内使用指定文本、图像和一个可选焦点矩形绘制指定状态的按钮控件。
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)
参数
- focused
- Boolean
为 true
,则在按钮上绘制一个聚焦框;否则为 false
。
- state
- PushButtonState
PushButtonState 值之一,指定按钮的可视状态。
注解
如果在操作系统中启用了视觉样式,并且视觉样式应用于当前应用程序,则此方法将使用当前视觉样式绘制按钮。 否则,它将使用经典 Windows 样式绘制按钮。
适用于
DrawButton(Graphics, Rectangle, String, Font, TextFormatFlags, Image, Rectangle, Boolean, PushButtonState)
在指定边界内使用指定文本、文本格式、图像和一个可选焦点矩形绘制指定状态的按钮控件。
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)
参数
- flags
- TextFormatFlags
TextFormatFlags 值的按位组合,该组合应用于 buttonText
。
- focused
- Boolean
为 true
,则在按钮上绘制一个聚焦框;否则为 false
。
- state
- PushButtonState
PushButtonState 值之一,指定按钮的可视状态。
注解
如果在操作系统中启用了视觉样式,并且视觉样式应用于当前应用程序,则此方法将使用当前视觉样式绘制按钮。 否则,它将使用经典 Windows 样式绘制按钮。