Postupy: Vlastní vykreslení ovládacího prvku ToolStrip
Ovládací ToolStrip prvky mají následující přidružené třídy vykreslování (malování):
ToolStripSystemRenderer poskytuje vzhled a styl operačního systému.
ToolStripProfessionalRendererposkytuje vzhled a styl systém Microsoft Office.
ToolStripRenderer je abstraktní základní třída pro ostatní dvě třídy vykreslování.
Pokud chcete vlastní kreslení (označované také jako kreslení vlastníka ToolStrip), můžete přepsat jednu z tříd rendereru a změnit aspekt logiky vykreslování.
Následující postupy popisují různé aspekty vlastního výkresu.
Přepínání mezi poskytnutými renderery
RenderMode Nastavte vlastnost na ToolStripRenderMode požadovanou hodnotu.
Statická ManagerRenderModeRenderMode funkce určuje vykreslovací modul pro vaši aplikaci. Ostatní hodnoty ToolStripRenderMode jsou Custom, Professionala System.
Změna ohraničení stylu Office
- Přepsat ToolStripProfessionalRenderer.OnRenderToolStripBorder, ale nevolat základní třídu.
Poznámka:
Existuje verze této metody pro ToolStripRenderer, ToolStripSystemRenderera ToolStripProfessionalRenderer.
Změna tabulky ProfessionalColorTable
Přepište ProfessionalColorTable a změňte požadované barvy.
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
Změna vykreslování pro všechny toolStrips
ToolStripManager.RenderMode Pomocí vlastnosti vyberte jeden z poskytnutých rendererů.
Slouží ToolStripManager.Renderer k přiřazení vlastního rendereru.
Ujistěte se, že ToolStrip.RenderMode je nastavena výchozí hodnota ManagerRenderMode.
Vypnutí barev Office
- Nastavte ToolStripManager.VisualStylesEnabled na hodnotu
false
.
Vypnutí barev Office pro jeden ToolStrip
Použijte kód podobný následujícímu příkladu kódu.
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)
Viz také
.NET Desktop feedback
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro