Bidirektionale Unterstützung für Windows Forms-Anwendungen
Aktualisiert: November 2007
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 schließt Standardformulare, Dialogfelder, MDI-Formulare und alle Steuerelemente ein, die Sie in diesen Formularen verwenden können, also alle Objekte im Control-Namespace.
Kulturspezifische Unterstützung
Durch die Kultur und die Kultureinstellungen der Benutzoberfläche wird festgelegt, wie Datums- und Zeitangaben, Währungen und andere Informationen in Anwendungen gehandhabt werden. Kultur und Benutzeroberflächen-Kultur werden für bidirektionale Sprachen genauso wie für andere Sprachen unterstützt.
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 dieses Formulars diese Einstellungen. Bei den meisten Steuerelementen können Sie die RightToLeft-Eigenschaft aber auch individuell festlegen.
Die Auswirkung der RightToLeft-Eigenschaft kann sich von Steuerelement zu Steuerelement unterscheiden. In 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 Lesefolge als auch das Layout verä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 wird dargestellt, 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? |
---|---|---|---|
Stellt die Rechts-nach-Links-Lesefolge ein. Kehrt TextAlign, ImageAlign und TextImageRelation um. |
Keine Auswirkung |
Nein |
|
Das Kontrollkästchen wird rechts vom Text angezeigt |
Keine Auswirkung |
Nein |
|
Alle Kontrollkästchen werden rechts vom Text angezeigt |
Keine Auswirkung |
Nein |
|
Keine Auswirkung, hängt von der Sprache des Betriebssystems ab |
Keine Auswirkung |
Nein |
|
Die Elemente im Kombinationsfeld sind rechtsbündig |
Keine Auswirkung |
Nein |
|
Wird rechtsbündig mit Rechts-nach-Links-Lesefolge angezeigt |
Keine Auswirkung |
Nein |
|
Wird rechtsbündig mit Rechts-nach-Links-Lesefolge angezeigt |
Keine Auswirkung |
Nein |
|
Wirkt sich sowohl auf die Rechts-nach-Links-Lesefolge als auch auf das Steuerelementlayout aus |
Keine Auswirkung |
Nein |
|
Keine Auswirkung, hängt von der Sprache des Betriebssystems ab |
Spiegelt das Steuerelement |
Ja |
|
Richtet die Schaltflächen Nach oben bzw. Nach unten linksbündig aus |
Keine Auswirkung |
Nein |
|
Nicht unterstützt |
Keine Auswirkung |
Nein |
|
Je nach Sprache des Betriebssystems |
Keine Auswirkung |
Nein |
|
Stellt Rechts-nach-Links-Lesefolge ein und kehrt Bildlaufleisten um |
Spiegelt das Formular |
Ja |
|
Der Titel wird rechtsbündig angezeigt. Untergeordnete Steuerelemente können diese Eigenschaft erben. |
Verwenden Sie ein TableLayoutPanel im Steuerelement für die Unterstützung der Spiegelung von rechts nach links. |
Nein |
|
Startet mit einem rechtsbündigen Bildlauffeld (Ziehpunkt) |
Keine Auswirkung |
Nein |
|
Nicht erforderlich |
Keine Auswirkung |
Nein |
|
Wird rechtsbündig angezeigt. Kehrt TextAlign und ImageAlign um. |
Keine Auswirkung |
Nein |
|
Wird rechtsbündig angezeigt. Kehrt TextAlign und ImageAlign um. |
Keine Auswirkung |
Nein |
|
Die Elemente werden rechtsbündig angezeigt. |
Keine Auswirkung |
Nein |
|
Setzt die Lesefolge auf Rechts-nach-Links, die Elemente bleiben linksbündig |
Spiegelt das Steuerelement |
Ja |
|
Wird rechtsbündig angezeigt, zur Laufzeit auch mit Rechts-nach-Links-Lesefolge, nicht aber zur Entwurfszeit |
Keine Auswirkung |
Nein |
|
Zeigt Text von rechts nach links an. |
Keine Auswirkung |
Nein |
|
Keine Auswirkung, hängt von der Sprache des Betriebssystems ab |
Spiegelt das Steuerelement |
Ja |
|
Nicht unterstützt |
Nicht unterstützt |
Nein |
|
Die Schaltflächen Nach oben und Nach unten sind linksbündig |
Keine Auswirkung |
Nein |
|
Keine Auswirkung, hängt von der Sprache des Betriebssystems ab |
Keine Auswirkung |
Nein |
|
Keine Auswirkung, hängt von der Sprache des Betriebssystems ab |
Keine Auswirkung |
Nein |
|
Untergeordnete Steuerelemente können diese Eigenschaft erben |
Verwenden Sie ein TableLayoutPanel im Steuerelement für die Rechts-nach-Links-Unterstützung. |
Ja |
|
Nicht unterstützt |
Keine Auswirkung |
Nein |
|
Keine Auswirkung, hängt von der Sprache des Betriebssystems ab |
Keine Auswirkung |
Nein |
|
Die vertikale Bildlaufleiste wird linksbündig angezeigt, und die horizontale beginnt links |
Keine Auswirkung |
Nein |
|
Nicht unterstützt |
Nicht unterstützt |
Nein |
|
Keine Auswirkung |
Spiegelt das Steuerelement |
Ja |
|
Das Optionsfeld wird rechts vom Text angezeigt |
Keine Auswirkung |
Nein |
|
Steuerelemente, die Text enthalten, werden von rechts nach links mit Rechts-nach-Links- Lesefolge angezeigt |
Keine Auswirkung |
Nein |
|
Keine Auswirkung, hängt von der Sprache des Betriebssystems ab |
Keine Auswirkung |
Nein |
|
Das Bereichslayout wird umgekehrt: Die vertikale Bildlaufleiste wird auf der linken Seite angezeigt, die horizontale Bildlaufleiste beginnt rechts |
Verwenden Sie einen TableLayoutPanel, um die Reihenfolge der untergeordneten Steuerelemente zu spiegeln |
Nein |
|
Nicht unterstützt |
Keine Auswirkung |
Nein |
|
Nicht unterstützt. Verwenden Sie stattdessen StatusStrip |
Keine Auswirkung. Verwenden Sie stattdessen StatusStrip |
Nein |
|
Keine Auswirkung |
Spiegelt das Steuerelement |
Ja |
|
Text wird rechtsbündig mit Rechts-nach-Links-Lesefolge angezeigt |
Keine Auswirkung |
Nein |
|
Nicht erforderlich |
Nicht erforderlich |
Nein |
|
Diese Eigenschaft hat keine Auswirkung. Verwenden Sie stattdessen ToolStrip |
Keine Auswirkung. Verwenden Sie stattdessen ToolStrip |
Ja |
|
Stellt die Rechts-nach-Links-Lesefolge ein |
Keine Auswirkung |
Nein |
|
Bildlauf- oder Positionsleisten beginnen auf der rechten Seite. Wenn in Orientation vertikal angegeben ist, werden Teilstriche rechts angezeigt |
Keine Auswirkung |
Nein |
|
Stellt nur die Rechts-nach-Links-Lesefolge ein |
Spiegelt das Steuerelement |
Ja |
|
Die vertikale Bildlaufleiste wird auf der linken Seite angezeigt, das Bildlauffeld der horizontalen Bildlaufleiste befindet sich auf der rechten Seite |
Keine direkte Unterstützung. Verwenden Sie ein TableLayoutPanel |
Nein |
|
Wird statt auf der rechten auf der linken Seite der bildlauffähigen Steuerelemente angezeigt |
Keine Auswirkung |
Nein |
Codierung
Windows Forms unterstützen Unicode, Sie können also beim Erstellen von bidirektionalen Anwendungen alle Zeichensätze verwenden. Allerdings wird Unicode nicht auf allen Plattformen von allen Windows Forms-Steuerelementen unterstützt. Weitere Informationen finden Sie unter Codierung und die Globalisierung von Windows Forms.
GDI+
Mithilfe von GDI+ können Sie Text mit der 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 Textes umzukehren.
Häufig verwendete Dialogfelder
Systemtools wie das Dialogfeld Datei öffnen werden durch Windows gesteuert. Sie erben die Sprachelemente vom Betriebssystem. Wenn unter Windows die richtigen Spracheinstellungen gewählt wurden, funktionieren diese Dialogfelder auch mit bidirektionalen Sprachen.
Ebenso werden die Meldungsfenster auch durch das Betriebssystem gesteuert und unterstützen bidirektionalen Text. Die Beschriftungen auf den Schaltflächen der Meldungsfenster hängen ebenfalls von der aktuellen Spracheinstellung ab. Standardmäßig verwenden Meldungsfenster keine Leserichtung von rechts nach links. Sie können jedoch einen Parameter angeben, sodass die Leserichtung bei Anzeige des Meldungsfensters geändert wird. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Meldungsfeldern für bidirektionale Windows Forms.
RightToLeft, Bildlaufleisten 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. Nehmen Sie einmal an, Sie platzieren auf Ihrem Formular ein Steuerelement wie z. B. Panel oder eine von Panel abgeleitete Containerklasse (wie FlowLayoutPanel oder TableLayoutPanel). Wenn Sie AutoScroll für die Containerklasse auf Yes und anschließend die Anchor-Eigenschaft für mindestens ein Steuerelement im Container auf Right festlegen, wird keine Bildlaufleiste angezeigt. Die von ScrollableControl abgeleitete Klasse verhält sich, als wäre AutoScroll auf No festgelegt.
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.
Spiegeln
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 auf 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.
Siehe auch
Konzepte
Bidirektionale Unterstützung für ASP.NET-Webanwendungen