Nasıl yapılır: Bir ToolStrip Denetimini Özel Olarak Çizme
Denetimler ToolStrip aşağıdaki ilişkili işleme (boyama) sınıflarını içerir:
ToolStripSystemRenderer işletim sisteminizin görünümünü ve stilini sağlar.
ToolStripProfessionalRenderer Microsoft Office'in görünümünü ve stilini sağlar.
ToolStripRenderer diğer iki işleme sınıfı için soyut temel sınıftır.
Bir özel çizim yapmak (sahip çizimi olarak da bilinir) ToolStripiçin işleyici sınıflarından birini geçersiz kılabilir ve işleme mantığının bir yönünü değiştirebilirsiniz.
Aşağıdaki yordamlar özel çizimin çeşitli yönlerini açıklar.
Sağlanan işleyiciler arasında geçiş yapma
RenderMode özelliğini istediğiniz değere ToolStripRenderMode ayarlayın.
ile ManagerRenderModestatik RenderMode , uygulamanız için işleyiciyi belirler. diğer değerleri , ve değerleridir ToolStripRenderModeCustom. ProfessionalSystem
Office stili kenarlıkları değiştirme
- geçersiz kılın ToolStripProfessionalRenderer.OnRenderToolStripBorder, ancak temel sınıfı çağırmayın.
Dekont
, ve ToolStripProfessionalRendereriçin ToolStripRendererToolStripSystemRendererbu yöntemin bir sürümü vardır.
ProfessionalColorTable'ın değiştirilmesi
İstediğiniz renkleri geçersiz kılın ProfessionalColorTable ve değiştirin.
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { var colorTable = new MyColorTable(); toolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable); } class MyColorTable: ProfessionalColorTable { public override System.Drawing.Color ButtonPressedGradientBegin => Color.Red; public override System.Drawing.Color ButtonPressedGradientMiddle => Color.Blue; public override System.Drawing.Color ButtonPressedGradientEnd => Color.Green; public override System.Drawing.Color ButtonSelectedGradientBegin => Color.Yellow; public override System.Drawing.Color ButtonSelectedGradientMiddle => Color.Orange; public override System.Drawing.Color ButtonSelectedGradientEnd => Color.Violet; } }
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim colorTable As New MyColorTable ToolStrip1.Renderer = New ToolStripProfessionalRenderer(colorTable) End Sub Class MyColorTable Inherits ProfessionalColorTable Public Overrides ReadOnly Property ButtonPressedGradientBegin() As System.Drawing.Color Get Return Color.Red End Get End Property Public Overrides ReadOnly Property ButtonPressedGradientMiddle() As System.Drawing.Color Get Return Color.Blue End Get End Property Public Overrides ReadOnly Property ButtonPressedGradientEnd() As System.Drawing.Color Get Return Color.Green End Get End Property Public Overrides ReadOnly Property ButtonSelectedGradientBegin() As System.Drawing.Color Get Return Color.Yellow End Get End Property Public Overrides ReadOnly Property ButtonSelectedGradientMiddle() As System.Drawing.Color Get Return Color.Orange End Get End Property Public Overrides ReadOnly Property ButtonSelectedGradientEnd() As System.Drawing.Color Get Return Color.Violet End Get End Property End Class End Class
Tüm ToolStrip'ler için işlemeyi değiştirme
ToolStripManager.RenderMode Sağlanan işleyicilerden birini seçmek için özelliğini kullanın.
Özel işleyici atamak için kullanın ToolStripManager.Renderer .
değerinin ToolStrip.RenderMode varsayılan değerine ayarlandığından ManagerRenderModeemin olun.
Office renklerini kapatma
- ToolStripManager.VisualStylesEnabled seçeneğini
false
olarak ayarlayın.
Bir ToolStrip için Office renklerini kapatma
Aşağıdaki kod örneğine benzer bir kod kullanın.
ProfessionalColorTable colorTable = new ProfessionalColorTable(); colorTable.UseSystemColors = true; toolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable);
Dim colorTable As New ProfessionalColorTable colorTable.UseSystemColors = True ToolStrip1.Renderer = new ToolStripProfessionalRenderer(colorTable)
Ayrıca bkz.
.NET Desktop feedback
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin