Schließen-Schaltfläche für TabPages von rechts nach links TabControl c #

8

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:

%Vor%

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?

    
user4340666 29.12.2015, 09:28
quelle

1 Antwort

4

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:

%Vor%

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%     
Reza Aghaei 29.12.2015, 10:41
quelle