Porady: niestandardowy rysunek formantu ToolStrip
Kontrolki ToolStrip mają następujące skojarzone klasy renderowania (obraz):
ToolStripSystemRenderer zapewnia wygląd i styl systemu operacyjnego.
ToolStripProfessionalRenderer zapewnia wygląd i styl pakietu Microsoft Office.
ToolStripRenderer jest abstrakcyjną klasą bazową dla pozostałych dwóch klas renderowania.
Aby narysować niestandardowe (nazywane również rysowaniem właściciela) ToolStripelement , można zastąpić jedną z klas renderera i zmienić aspekt logiki renderowania.
Poniższe procedury opisują różne aspekty rysunku niestandardowego.
Przełączanie między udostępnionymi modułami renderujących
RenderMode Ustaw właściwość na ToolStripRenderMode odpowiednią wartość.
W ManagerRenderModeprzypadku elementu statyczny RenderMode określa moduł renderatora dla aplikacji. Pozostałe wartości ToolStripRenderMode to Custom, Professionali System.
Zmienianie obramowań w stylu pakietu Office
- Zastąpij metodę ToolStripProfessionalRenderer.OnRenderToolStripBorder, ale nie należy wywoływać klasy bazowej.
Uwaga
Istnieje wersja tej metody dla elementów ToolStripRenderer, ToolStripSystemRendereri ToolStripProfessionalRenderer.
Zmienianie tabeli ProfessionalColorTable
Zastąpij ProfessionalColorTable i zmień żądane kolory.
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
Renderowanie zmian dla wszystkich elementów ToolStrips
ToolStripManager.RenderMode Użyj właściwości , aby wybrać jeden z dostarczonych modułów renderujących.
Służy ToolStripManager.Renderer do przypisywania niestandardowego modułu renderowania.
Upewnij się, że ToolStrip.RenderMode ustawiono wartość domyślną .ManagerRenderMode
Wyłączanie kolorów pakietu Office
- Ustaw wartość opcji ToolStripManager.VisualStylesEnabled na
false
.
Wyłączanie kolorów pakietu Office dla jednego elementu ToolStrip
Użyj kodu podobnego do poniższego przykładu kodu.
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)
Zobacz też
.NET Desktop feedback
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla