Bidirektionale Unterstützung für Windows Forms-Anwendungen

Mit Visual Studio können Sie Windows-basierte Anwendungen erstellen, die bidirektionale (von rechts nach links geschriebene) Sprachen wie Arabisch oder Hebräisch unterstützen. Dies beinhaltet Standardformulare, Dialogfelder, MDI-Formulare und alle Steuerelemente, die Sie in diesen Formularen verwenden können, also alle Objekte im Control-Namespace.

Kulturspezifische Unterstützung

Durch Einstellungen der Kultur und Benutzeroberflächenkultur wird festgelegt, wie Datums- und Zeitangaben, Währungen und andere Informationen in Anwendungen gehandhabt werden. Kultur und Benutzeroberflächenkultur werden für bidirektionale Sprachen genauso wie für andere Sprachen unterstützt. Weitere Informationen finden Sie unter Kulturspezifische Klassen für globale Windows-Formulare und Webformulare.

RightToLeft-Eigenschaft und RightToLeftLayout-Eigenschaft

Die Control-Basisklasse, von der Formulare abgeleitet werden, enthält auch eine RightToLeft-Eigenschaft, die Sie zum Ändern der Leserichtung eines Formulars und seiner Steuerelemente verwenden können. Wenn Sie die RightToLeft-Eigenschaft eines Formulars festlegen, erben standardmäßig alle Steuerelemente des Formulars diese Einstellung. Bei den meisten Steuerelementen können Sie die RightToLeft-Eigenschaft aber auch individuell festlegen. Siehe auch Vorgehensweise: Anzeigen von Text mit der Schreibrichtung von rechts nach links in Windows Forms für die Globalisierung.

Die Auswirkung der RightToLeft-Eigenschaft kann sich von Steuerelement zu Steuerelement unterscheiden. Bei einigen Steuerelementen, wie den Steuerelementen Button, TreeView und ToolTip, legt die Eigenschaft nur die Leserichtung fest. Bei anderen Steuerelementen wird durch die RightToLeft-Eigenschaft sowohl die Leserichtung als auch das Layout geändert. Dazu gehören Steuerelemente des Typs RadioButton, ComboBox und CheckBox. Andere Steuerelemente erfordern, dass die RightToLeftLayout-Eigenschaft angewendet wird, um das Layout von rechts nach links zu spiegeln. In der folgenden Tabelle ist angegeben, wie sich die RightToLeft-Eigenschaft und die RightToLeftLayout-Eigenschaft auf die einzelnen Windows Forms-Steuerelemente auswirken.

Steuerelement/Komponente Auswirkung der RightToLeft-Eigenschaft Auswirkung der RightToLeftLayout-Eigenschaft Spiegeln erforderlich?
Button Stellt die Rechts-nach-Links-Lesefolge ein. Kehrt TextAlign, ImageAlign und TextImageRelation um. Keine Auswirkungen Nein
CheckBox Das Kontrollkästchen wird rechts vom Text angezeigt. Keine Auswirkungen Nein
CheckedListBox Alle Kontrollkästchen werden rechts vom Text angezeigt. Keine Auswirkungen Nein
ColorDialog Keine Auswirkung. Hängt von der Sprache des Betriebssystems ab. Keine Auswirkungen Nein
ComboBox Elemente im Kombinationsfeld sind rechtsbündig. Keine Auswirkungen Nein
ContextMenu Wird rechtsbündig mit Rechts-nach-Links-Lesefolge angezeigt. Keine Auswirkungen Nein
DataGrid Wird rechtsbündig mit Rechts-nach-Links-Lesefolge angezeigt. Keine Auswirkungen Nein
DataGridView Wirkt sich sowohl auf die Rechts-nach-Links-Lesefolge als auch auf das Steuerelementlayout aus. Keine Auswirkungen Nein
DateTimePicker Keine Auswirkung. Hängt von der Sprache des Betriebssystems ab. Spiegelt das Steuerelement Ja
DomainUpDown Richtet die Schaltflächen "Nach oben" und "Nach unten" linksbündig aus. Keine Auswirkungen Nein
ErrorProvider Nicht unterstützt Keine Auswirkungen Nein
FontDialog Hängt von der Sprache des Betriebssystems ab. Keine Auswirkungen Nein
Form Stellt die Rechts-nach-Links-Lesefolge ein und kehrt Schiebeleisten um. Spiegelt das Formular Ja
GroupBox Die Beschriftung wird rechtsbündig angezeigt. Untergeordnete Steuerelemente können diese Eigenschaft erben. Verwenden Sie TableLayoutPanel im Steuerelement für die Unterstützung der Spiegelung von rechts nach links. Nein
HScrollBar Startet mit einem rechtsbündigen Bildlauffeld (Ziehpunkt). Keine Auswirkungen Nein
ImageList Nicht erforderlich Keine Auswirkungen Nein
Label Wird rechtsbündig angezeigt. Kehrt TextAlign und ImageAlign um. Keine Auswirkungen Nein
LinkLabel Wird rechtsbündig angezeigt. Kehrt TextAlign und ImageAlign um. Keine Auswirkungen Nein
ListBox Elemente werden rechtsbündig angezeigt. Keine Auswirkungen Nein
ListView Setzt die Lesefolge auf Rechts-nach-Links. Elemente bleiben linksbündig. Spiegelt das Steuerelement Ja
MainMenu Wird zur Laufzeit (nicht zur Entwurfszeit) rechtsbündig mit Rechts-nach-Links-Lesefolge angezeigt. Keine Auswirkungen Nein
MaskedTextBox Zeigt Text von rechts nach links an. Keine Auswirkungen Nein
MonthCalendar Keine Auswirkung. Hängt von der Sprache des Betriebssystems ab. Spiegelt das Steuerelement Ja
NotifyIcon Nicht unterstützt Nicht unterstützt Nein
NumericUpDown Die Schaltflächen "Nach oben" und "Nach unten" sind linksbündig. Keine Auswirkungen Nein
OpenFileDialog Wenn Sie bei „Von-Rechts-nach-Links“-Betriebssystemen die RightToLeft-Eigenschaft des enthaltenden Formulars auf RightToLeft.Yes festlegen, wird das Dialogfeld lokalisiert. Keine Auswirkungen Nein
PageSetupDialog Keine Auswirkung. Hängt von der Sprache des Betriebssystems ab. Keine Auswirkungen Nein
Panel Untergeordnete Steuerelemente können diese Eigenschaft erben. Verwenden Sie TableLayoutPanel im Steuerelement für die Rechts-nach-Links-Unterstützung. Ja
PictureBox Nicht unterstützt Keine Auswirkungen Nein
PrintDialog Keine Auswirkung. Hängt von der Sprache des Betriebssystems ab. Keine Auswirkungen Nein
PrintDocument Die vertikale Schiebeleiste wird linksbündig angezeigt, und die horizontale Schiebeleiste beginnt links. Keine Auswirkungen Nein
PrintPreviewDialog Nicht unterstützt Nicht unterstützt Nein
ProgressBar Diese Eigenschaft hat keine Auswirkung. Spiegelt das Steuerelement Ja
RadioButton Das Optionsfeld wird rechts vom Text angezeigt. Keine Auswirkungen Nein
RichTextBox Steuerelemente, die Text enthalten, werden von rechts nach links mit Rechts-nach-Links-Lesefolge angezeigt. Keine Auswirkungen Nein
SaveFileDialog Keine Auswirkung. Hängt von der Sprache des Betriebssystems ab. Keine Auswirkungen Nein
SplitContainer Das Bereichslayout wird umgekehrt. Die vertikale Scrollleiste wird auf der linken Seite angezeigt, die horizontale Scrollleiste beginnt rechts. Verwenden Sie TableLayoutPanel, um die Reihenfolge der untergeordneten Steuerelemente zu spiegeln. Nein
Splitter Nicht unterstützt Keine Auswirkungen Nein
StatusBar Nicht unterstützt. Verwenden Sie stattdessen StatusStrip. Keine Auswirkung. Verwenden Sie stattdessen StatusStrip. Nein
TabControl Diese Eigenschaft hat keine Auswirkung. Spiegelt das Steuerelement Ja
TextBox Text wird rechtsbündig mit Rechts-nach-Links-Lesefolge angezeigt. Keine Auswirkungen Nein
Timer Nicht erforderlich Nicht erforderlich Nein
ToolBar Diese Eigenschaft hat keine Auswirkung. Verwenden Sie stattdessen ToolStrip. Keine Auswirkung. Verwenden Sie stattdessen ToolStrip. Ja
ToolTip Stellt die Rechts-nach-Links-Lesefolge ein. Keine Auswirkungen Nein
TrackBar Bildlauf oder Position beginnt auf der rechten Seite. Wenn Orientation als vertikal angegeben ist, werden Teilstriche rechts angezeigt. Keine Auswirkungen Nein
TreeView Stellt nur die Rechts-nach-Links-Lesefolge ein. Spiegelt das Steuerelement Ja
UserControl Vertikale Scrollleiste wird auf der linken Seite angezeigt. Der Ziehpunkt der horizontalen Scrollleiste befindet sich auf der rechten Seite. Keine direkte Unterstützung. Verwenden Sie TableLayoutPanel. Nein
VScrollBar Wird statt auf der rechten auf der linken Seite von bildlauffähigen Steuerelementen angezeigt. Keine Auswirkungen Nein

Codierung

Windows Forms unterstützen Unicode, sodass Sie beim Erstellen von bidirektionalen Anwendungen alle Zeichensätze verwenden können. Allerdings wird Unicode nicht auf allen Plattformen von allen Windows Forms-Steuerelementen unterstützt.

GDI+

Mithilfe von GDI+ können Sie Text mit Rechts-nach-Links-Lesefolge zeichnen. Die DrawString-Methode, die zum Zeichnen von Text verwendet wird, unterstützt einen StringFormat-Parameter, den Sie auf den DirectionRightToLeft-Member der StringFormatFlags-Enumeration festlegen können, um den Ausgangspunkt des Texts umzukehren.

Häufig verwendete Dialogfelder

Systemtools wie das Dialogfeld "Datei öffnen" werden durch Windows gesteuert. Sie erben Sprachelemente vom Betriebssystem. Wenn Sie eine Windows-Version mit den richtigen Spracheinstellungen verwenden, funktionieren diese Dialogfelder auch mit bidirektionalen Sprachen.

Ebenso werden Meldungsfelder durch das Betriebssystem gesteuert und unterstützen bidirektionalen Text. Die Beschriftungen auf den Schaltflächen der Meldungsfelder hängen von der aktuellen Spracheinstellung ab. Standardmäßig verwenden Meldungsfelder keine Rechts-nach-Links-Lesefolge. Sie können jedoch einen Parameter angeben, damit die Lesefolge bei Anzeige der Meldungsfelder geändert wird.

RightToLeft, Schiebeleisten und ScrollableControl

In Windows Forms besteht derzeit eine Einschränkung, die die ordnungsgemäße Funktion aller von ScrollableControl abgeleiteten Klassen verhindert, wenn sowohl RightToLeft aktiviert als auch AutoScroll auf Yes festgelegt ist. Angenommen, Sie platzieren z. B. das Panel-Steuerelement oder eine von Panel abgeleitete Containerklasse (z. B. FlowLayoutPanel oder TableLayoutPanel) in einem Formular. Wenn Sie AutoScroll im Container auf Yes und dann die Anchor-Eigenschaft für mindestens ein Steuerelement im Container auf Right festlegen, wird grundsätzlich keine Schiebeleiste angezeigt. Die von ScrollableControl abgeleitete Klasse verhält sich so, als ob AutoScroll auf No festgelegt wäre.

Die einzige Problemumgehung besteht derzeit darin, ScrollableControl in einem anderen ScrollableControl zu schachteln. Wenn Sie beispielsweise in dieser Situation die Funktion von TableLayoutPanel benötigen, können Sie es in einem Panel-Steuerelement platzieren und AutoScroll in Panel auf Yes festlegen.

Spiegelung

Spiegeln bezeichnet die Umkehrung des Layouts von Elementen der Benutzeroberfläche, sodass diese von rechts nach links fließen. Bei einem gespiegelten Windows Form werden z. B. die Schaltflächen "Minimieren", "Maximieren" und "Schließen" nicht am rechten, sondern am linken Rand der Titelleiste angezeigt.

Wenn die RightToLeft-Eigenschaft eines Formulars oder eines Steuerelements auf true gesetzt ist, wird die Leserichtung der Elemente eines Formulars umgekehrt. Das Layout wird durch diese Einstellung jedoch nicht auf Rechts-nach-Links umgeschaltet, es findet also keine Spiegelung statt. Beispielsweise werden durch das Festlegen dieser Eigenschaft die Schaltflächen Minimieren, Maximieren und Schließen in der Titelleiste des Formulars nicht auf die linke Seite des Formulars verschoben. Ebenso ist Spiegeln für einige Steuerelemente, z. B. das TreeView-Steuerelement, erforderlich, damit sie für Arabisch oder Hebräisch korrekt angezeigt werden. Sie können diese Steuerelemente spiegeln, indem Sie die RightToLeftLayout-Eigenschaft festlegen.

Von den folgenden Steuerelementen können Sie gespiegelte Versionen erzeugen:

Einige Steuerelemente sind versiegelt. Es ist deshalb nicht möglich, neue Steuerelemente von ihnen abzuleiten. Dazu gehören das ImageList-Steuerelement und das ProgressBar-Steuerelement.

Weitere Informationen