Cara: Mengatur ToolStrip Renderer pada Run Time
Anda dapat menyesuaikan tampilan kontrol Anda ToolStrip dengan membuat kelas kustom ProfessionalColorTable
.
Contoh
Contoh kode berikut menunjukkan cara membuat kelas kustom ProfessionalColorTable
. Kelas ini mendefinisikan gradien untuk dan MenuStripToolStrip kontrol.
Untuk menggunakan contoh kode ini, kompilasi dan jalankan aplikasi, lalu klik Ubah Warna untuk menerapkan gradien yang ditentukan di kelas kustom ProfessionalColorTable
.
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Drawing;
Imports System.Collections.Generic
Imports System.Windows.Forms
Imports System.Drawing
// This code example demonstrates how to use a ProfessionalRenderer
// to define custom professional colors at runtime.
class Form2 : Form
{
public Form2()
{
// Create a new ToolStrip control.
ToolStrip ts = new ToolStrip();
// Populate the ToolStrip control.
ts.Items.Add("Apples");
ts.Items.Add("Oranges");
ts.Items.Add("Pears");
ts.Items.Add(
"Change Colors",
null,
new EventHandler(ChangeColors_Click));
// Create a new MenuStrip.
MenuStrip ms = new MenuStrip();
// Dock the MenuStrip control to the top of the form.
ms.Dock = DockStyle.Top;
// Add the top-level menu items.
ms.Items.Add("File");
ms.Items.Add("Edit");
ms.Items.Add("View");
ms.Items.Add("Window");
// Add the ToolStrip to Controls collection.
this.Controls.Add(ts);
// Add the MenuStrip control last.
// This is important for correct placement in the z-order.
this.Controls.Add(ms);
}
// This event handler is invoked when the "Change colors"
// ToolStripItem is clicked. It assigns the Renderer
// property for the ToolStrip control.
void ChangeColors_Click(object sender, EventArgs e)
{
ToolStripManager.Renderer =
new ToolStripProfessionalRenderer(new CustomProfessionalColors());
}
}
// This class defines the gradient colors for
// the MenuStrip and the ToolStrip.
class CustomProfessionalColors : ProfessionalColorTable
{
public override Color ToolStripGradientBegin
{ get { return Color.BlueViolet; } }
public override Color ToolStripGradientMiddle
{ get { return Color.CadetBlue; } }
public override Color ToolStripGradientEnd
{ get { return Color.CornflowerBlue; } }
public override Color MenuStripGradientBegin
{ get { return Color.Salmon; } }
public override Color MenuStripGradientEnd
{ get { return Color.OrangeRed; } }
}
' This code example demonstrates how to use a ProfessionalRenderer
' to define custom professional colors at runtime.
Class Form2
Inherits Form
Public Sub New()
' Create a new ToolStrip control.
Dim ts As New ToolStrip()
' Populate the ToolStrip control.
ts.Items.Add("Apples")
ts.Items.Add("Oranges")
ts.Items.Add("Pears")
ts.Items.Add("Change Colors", Nothing, New EventHandler(AddressOf ChangeColors_Click))
' Create a new MenuStrip.
Dim ms As New MenuStrip()
' Dock the MenuStrip control to the top of the form.
ms.Dock = DockStyle.Top
' Add the top-level menu items.
ms.Items.Add("File")
ms.Items.Add("Edit")
ms.Items.Add("View")
ms.Items.Add("Window")
' Add the ToolStrip to Controls collection.
Me.Controls.Add(ts)
' Add the MenuStrip control last.
' This is important for correct placement in the z-order.
Me.Controls.Add(ms)
End Sub
' This event handler is invoked when the "Change colors"
' ToolStripItem is clicked. It assigns the Renderer
' property for the ToolStrip control.
Sub ChangeColors_Click(ByVal sender As Object, ByVal e As EventArgs)
ToolStripManager.Renderer = New ToolStripProfessionalRenderer(New CustomProfessionalColors())
End Sub
End Class
' This class defines the gradient colors for
' the MenuStrip and the ToolStrip.
Class CustomProfessionalColors
Inherits ProfessionalColorTable
Public Overrides ReadOnly Property ToolStripGradientBegin() As Color
Get
Return Color.BlueViolet
End Get
End Property
Public Overrides ReadOnly Property ToolStripGradientMiddle() As Color
Get
Return Color.CadetBlue
End Get
End Property
Public Overrides ReadOnly Property ToolStripGradientEnd() As Color
Get
Return Color.CornflowerBlue
End Get
End Property
Public Overrides ReadOnly Property MenuStripGradientBegin() As Color
Get
Return Color.Salmon
End Get
End Property
Public Overrides ReadOnly Property MenuStripGradientEnd() As Color
Get
Return Color.OrangeRed
End Get
End Property
End Class
Menentukan kelas ProfessionalColorTable Kustom
Gradien kustom didefinisikan di CustomProfessionalColors
kelas .
// This class defines the gradient colors for
// the MenuStrip and the ToolStrip.
class CustomProfessionalColors : ProfessionalColorTable
{
public override Color ToolStripGradientBegin
{ get { return Color.BlueViolet; } }
public override Color ToolStripGradientMiddle
{ get { return Color.CadetBlue; } }
public override Color ToolStripGradientEnd
{ get { return Color.CornflowerBlue; } }
public override Color MenuStripGradientBegin
{ get { return Color.Salmon; } }
public override Color MenuStripGradientEnd
{ get { return Color.OrangeRed; } }
}
' This class defines the gradient colors for
' the MenuStrip and the ToolStrip.
Class CustomProfessionalColors
Inherits ProfessionalColorTable
Public Overrides ReadOnly Property ToolStripGradientBegin() As Color
Get
Return Color.BlueViolet
End Get
End Property
Public Overrides ReadOnly Property ToolStripGradientMiddle() As Color
Get
Return Color.CadetBlue
End Get
End Property
Public Overrides ReadOnly Property ToolStripGradientEnd() As Color
Get
Return Color.CornflowerBlue
End Get
End Property
Public Overrides ReadOnly Property MenuStripGradientBegin() As Color
Get
Return Color.Salmon
End Get
End Property
Public Overrides ReadOnly Property MenuStripGradientEnd() As Color
Get
Return Color.OrangeRed
End Get
End Property
End Class
Menetapkan Perender Kustom
Buat baru ToolStripProfessionalRenderer
dengan CustomProfessionalColors
kelas , dan tetapkan ke ToolStripManager.Renderer properti .
// This event handler is invoked when the "Change colors"
// ToolStripItem is clicked. It assigns the Renderer
// property for the ToolStrip control.
void ChangeColors_Click(object sender, EventArgs e)
{
ToolStripManager.Renderer =
new ToolStripProfessionalRenderer(new CustomProfessionalColors());
}
' This event handler is invoked when the "Change colors"
' ToolStripItem is clicked. It assigns the Renderer
' property for the ToolStrip control.
Sub ChangeColors_Click(ByVal sender As Object, ByVal e As EventArgs)
ToolStripManager.Renderer = New ToolStripProfessionalRenderer(New CustomProfessionalColors())
End Sub
Mengompilasi Kode
Contoh ini membutuhkan:
- Referensi ke rakitan System.Design, System.Drawing, dan System.Windows.Forms.
Baca juga
.NET Desktop feedback
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk