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
.NET Desktop feedback