Ich möchte eine Schließen-Schaltfläche zu TabPages
eines TabControl
hinzufügen. Ich versuche diesen Code und es funktioniert gut mit einem TabControl von links nach rechts:
Aber wenn ich die Eigenschaft RightToLeftLayout = true
und RightToLeft = true
einstelle funktioniert es nicht, TabPage
Titel erscheinen nicht und schließen auch die Schaltfläche.
So, wie man den Code in einer Weise repariert, die RightToLeft
Eigenschaft annimmt?
Sie können eine Funktion erstellen, um Koordinaten eines Rechtecks in RTL-Koordinaten in einem Container zu übersetzen:
%Vor%Und wenn Sie im RTL-Modus malen, berechnen Sie die Koordinaten wie folgt:
%Vor% Außerdem sollten Sie Ihre Zeichenfolgen mit StringFormat
zeichnen und im RTL-Modus StringFormatFlags.DirectionRightToLeft
verwenden und eine Zeichenkette im übersetzten Rechteck mit dem Zeichenfolgenformat zeichnen:
Sie können alle Codes in einem CustomTabControl
erben TabControl
einkapseln.
Screenshot
Der gesamte Code könnte sein:
Ich nehme an, Sie haben ein nahes Bild irgendwo wie Properties.Default.Close
und weisen es this.CloseImage
zu. Hier ist das Bild, das ich verwendet habe:
Ich setze auch this.tabControl2.Padding = new Point(10, 3);
, um zusätzlichen freien Platz für das Zeichnen des Bildes zur Verfügung zu stellen.
Sie können auch einfach Ihre Kriterien hinzufügen, wenn Sie den ersten Tab nicht schließen.
%Vor%Tags und Links c# winforms right-to-left tabpage tabcontrol