Freigeben über


Bi-Directional Unterstützung für Windows Forms-Anwendungen

Sie können Visual Studio verwenden, um Windows-basierte Anwendungen zu erstellen, die bidirektionale Sprachen (von rechts nach links) unterstützen, z. B. Arabisch und Hebräisch. Dazu gehören Standardformulare, Dialogfelder, MDI-Formulare und alle Steuerelemente, mit denen Sie in diesen Formularen arbeiten können, d. h. alle Objekte im Control Namespace.

Kulturunterstützung

Kultur- und Benutzeroberflächenkultureinstellungen bestimmen, wie eine Anwendung mit Datumsangaben, Uhrzeiten, Währungen und anderen Informationen funktioniert. Die Unterstützung für Kultur und UI-Kultur ist für bidirektionale Sprachen identisch wie für alle anderen Sprachen. Weitere Informationen finden Sie unter Kulturspezifische Klassen für globale Windows-Formulare und Webformulare.

RightToLeft- und RightToLeftLayout-Eigenschaft

Die Basisklasse Control , von der Formulare abgeleitet werden, enthält eine RightToLeft Eigenschaft, die Sie festlegen können, um die Lesereihenfolge eines Formulars und dessen Steuerelemente zu ändern. Wenn Sie die Eigenschaft des Formulars RightToLeft festlegen, erben standardmäßig Steuerelemente im Formular diese Einstellung. Sie können jedoch die RightToLeft Eigenschaft auch einzeln auf den meisten Steuerelementen festlegen. Weitere Informationen finden Sie unter Wie man Text von rechts nach links in Windows Forms für die Globalisierung darstellt.

Der Effekt der RightToLeft Eigenschaft kann sich von einem Steuerelement zu einem anderen unterscheiden. In einigen Steuerelementen legt die Eigenschaft nur die Lesereihenfolge fest, wie in den Steuerelementen Button, TreeView und ToolTip. In anderen Steuerelementen ändert die RightToLeft Eigenschaft sowohl die Leserichtung als auch das Layout. Dazu gehören die Steuerelemente RadioButton, ComboBox und CheckBox. Andere Steuerelemente erfordern, dass die RightToLeftLayout Eigenschaft auf die Spiegelung des Layouts von rechts nach links angewendet wird. Die folgende Tabelle enthält Details dazu, wie sich die RightToLeft und RightToLeftLayout Eigenschaften auf einzelne Windows Forms-Steuerelement auswirken.

Steuerelement/Komponente Auswirkung der RightToLeft-Eigenschaft Der Effekt der RightToLeftLayout-Eigenschaft Erfordert Spiegelung?
Button Legt die Lesereihenfolge für RTL fest. Kehrt TextAlign, ImageAlign und TextImageRelation um Keine Auswirkungen Nein
CheckBox Das Kontrollkästchen wird auf der rechten Seite des Texts angezeigt. Keine Auswirkungen Nein
CheckedListBox Alle Kontrollkästchen werden auf der rechten Seite des Texts angezeigt. Keine Auswirkungen Nein
ColorDialog Nicht betroffen; hängt von der Sprache des Betriebssystems ab. Keine Auswirkungen Nein
ComboBox Elemente im Kombinationsfeld-Steuerelement sind rechtsbündig ausgerichtet. Keine Auswirkungen Nein
ContextMenu Wird rechtsbündig mit der Lesereihenfolge von RECHTS angezeigt. Keine Auswirkungen Nein
DataGrid Wird rechtsbündig mit der Lesereihenfolge von RECHTS angezeigt. Keine Auswirkungen Nein
DataGridView Beeinflusst sowohl die RTL-Lesereihenfolge als auch das Steuerungslayout. Keine Auswirkungen Nein
DateTimePicker Nicht betroffen; hängt von der Sprache des Betriebssystems ab. Spiegelt das Steuerelement. Ja
DomainUpDown Richtet die Schaltflächen nach oben und unten links aus Keine Auswirkungen Nein
ErrorProvider Nicht unterstützt Keine Auswirkungen Nein
FontDialog Hängt von der Sprache des Betriebssystems ab. Keine Auswirkungen Nein
Form Legt die Lesereihenfolge für RTL fest und kehrt die Richtung der Bildlaufleisten um. Spiegelt das Formular wieder. Ja
GroupBox Die Beschriftung wird rechtsbündig angezeigt. Untergeordnete Steuerelemente können diese Eigenschaft erben. Verwenden eines TableLayoutPanel Innerhalb des Steuerelements zur Unterstützung der Rechts-nach-links-Spiegelung Nein
HScrollBar Beginnt mit dem Bildlauffeld (Daumen) rechtsbündig Keine Auswirkungen Nein
ImageList Nicht erforderlich Keine Auswirkungen Nein
Label Rechtsbündig angezeigt. Kehrt TextAlign und ImageAlign um Keine Auswirkungen Nein
LinkLabel Rechtsbündig angezeigt. Kehrt TextAlign und ImageAlign um Keine Auswirkungen Nein
ListBox Elemente sind rechtsbündig ausgerichtet. Keine Auswirkungen Nein
ListView Legt die Lesereihenfolge auf RTL fest; Elemente bleiben linksbündig ausgerichtet Spiegelt das Steuerelement. Ja
MainMenu Rechtsbündig angezeigt mit der Lesereihenfolge von RTL zur Laufzeit (nicht zur Entwurfszeit) Keine Auswirkungen Nein
MaskedTextBox Zeigt Text von rechts nach links an. Keine Auswirkungen Nein
MonthCalendar Nicht betroffen; 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 unten werden linksbündig ausgerichtet Keine Auswirkungen Nein
OpenFileDialog In auf Rechts-nach-Links-ausgerichteten Betriebssystemen legen Sie die RightToLeft-Eigenschaft des enthaltenden Formulars fest, damit das Dialogfeld zu RightToLeft.Yes lokalisiert wird. Keine Auswirkungen Nein
PageSetupDialog Nicht betroffen; hängt von der Sprache des Betriebssystems ab. Keine Auswirkungen Nein
Panel Untergeordnete Steuerelemente können diese Eigenschaft erben Verwenden Sie TableLayoutPanel innerhalb des Steuerelements zur Unterstützung von rechts nach links. Ja
PictureBox Nicht unterstützt Keine Auswirkungen Nein
PrintDialog Nicht betroffen; hängt von der Sprache des Betriebssystems ab. Keine Auswirkungen Nein
PrintDocument Die vertikale Bildlaufleiste wird linksbündig ausgerichtet, und die horizontale Bildlaufleiste beginnt von links Keine Auswirkungen Nein
PrintPreviewDialog Nicht unterstützt Nicht unterstützt Nein
ProgressBar Nicht von dieser Eigenschaft betroffen Spiegelt das Steuerelement. Ja
RadioButton Das Optionsfeld wird auf der rechten Seite des Texts angezeigt. Keine Auswirkungen Nein
RichTextBox Steuerelemente, die Text enthalten, werden von rechts nach links im rechten Lesefluss angezeigt. Keine Auswirkungen Nein
SaveFileDialog Nicht betroffen; hängt von der Sprache des Betriebssystems ab. Keine Auswirkungen Nein
SplitContainer Das Panel-Layout ist umgekehrt; die vertikale Bildlaufleiste erscheint links; die horizontale Bildlaufleiste beginnt von rechts. Verwenden Sie ein TableLayoutPanel, um die Reihenfolge der untergeordneten Steuerelemente zu spiegeln. Nein
Splitter Nicht unterstützt Keine Auswirkungen Nein
StatusBar Nicht unterstützt; stattdessen verwenden StatusStrip Kein Effekt; stattdessen verwenden StatusStrip Nein
TabControl Nicht von dieser Eigenschaft betroffen Spiegelt das Steuerelement. Ja
TextBox Zeigt Text von rechts nach links mit Rechts-nach-links-Lesereihenfolge an. Keine Auswirkungen Nein
Timer Nicht erforderlich Nicht erforderlich Nein
ToolBar Von dieser Eigenschaft nicht betroffen; stattdessen verwenden ToolStrip Kein Effekt; stattdessen verwenden ToolStrip Ja
ToolTip Legt die Lesereihenfolge für RTL fest. Keine Auswirkungen Nein
TrackBar Der Bildlauf oder die Spur beginnt von rechts; wenn Orientation vertikal ist, erscheinen Markierungen von rechts. Keine Auswirkungen Nein
TreeView Legt die Lesereihenfolge nur für RTL fest. Spiegelt das Steuerelement. Ja
UserControl Vertikale Bildlaufleiste wird links angezeigt; Horizontaler Bildlaufleiste mit Ziehpunkt rechts Keine direkte Unterstützung; Verwenden Sie ein TableLayoutPanel Nein
VScrollBar Auf der linken Seite anstelle der rechten Seite der scrollbareren Steuerelemente angezeigt Keine Auswirkungen Nein

Codierung

Windows Forms unterstützen Unicode, sodass Sie einen beliebigen Zeichensatz einschließen können, wenn Sie Ihre bidirektionalen Anwendungen erstellen. Nicht alle Windows Forms-Steuerelemente unterstützen Unicode auf allen Plattformen.

GDI+

Sie können GDI+ verwenden, um Text mit Leserichtung von rechts nach links zu zeichnen. Die DrawString Methode, die zum Zeichnen von Text verwendet wird, unterstützt einen StringFormat Parameter, den Sie auf das DirectionRightToLeft Element der StringFormatFlags Enumeration festlegen können, um den Ursprungspunkt für den Text umzukehren.

Allgemeine Dialogfelder

Systemtools wie das Dialogfeld "Datei öffnen" befinden sich unter der Kontrolle von Windows. Sie erben Sprachelemente vom Betriebssystem. Wenn Sie eine Windows-Version mit den richtigen Spracheinstellungen verwenden, funktionieren diese Dialogfelder ordnungsgemäß mit bidirektionalen Sprachen.

Auf ähnliche Weise durchlaufen Meldungsfelder das Betriebssystem und unterstützen bidirektionalen Text. Die Beschriftungen in Meldungsfeldschaltflächen basieren auf der aktuellen Spracheinstellung. Meldungsfelder verwenden standardmäßig keine Leserichtung von rechts nach links, sie können jedoch einen Parameter angeben, um die Leserichtung zu ändern, wenn die Meldungsfelder angezeigt werden.

RightToLeft, Scrollbars und ScrollableControl

Es gibt derzeit eine Einschränkung in Windows Forms, die verhindert, dass alle von ScrollableControl abgeleiteten Klassen ordnungsgemäß funktionieren, wenn RightToLeft aktiviert ist und AutoScroll auf Yes gesetzt ist. Angenommen, Sie platzieren ein Steuerelement, z Panel. B. eine von Ihrem Formular abgeleitete Panel Containerklasse (z FlowLayoutPanel . B. oder TableLayoutPanel). Wenn Sie auf dem Container AutoScroll festlegen und anschließend die Yes-Eigenschaft auf ein oder mehrere Steuerelemente innerhalb des Containers auf Anchor setzen, erscheint keine Bildlaufleiste. Die von ScrollableControl abgeleitete Klasse fungiert so, als wäre AutoScroll auf No gesetzt.

Derzeit besteht die einzige Problemumgehung darin, die ScrollableControl Innenseite zu ScrollableControlverschachteln. Wenn Sie z. B. TableLayoutPanel in dieser Situation benötigen, können Sie es innerhalb eines Panel-Steuerelements platzieren und AutoScroll im Panel auf Yes festlegen.

Spiegelung

Die Spiegelung bezieht sich auf das Umkehren des Layouts von UI-Elementen, sodass sie von rechts nach links fließen. In einem gespiegelten Windows Form werden beispielsweise die Schaltflächen "Minimieren", "Maximieren" und "Schließen" ganz links auf der Titelleiste angezeigt, nicht ganz rechts.

Wenn Sie die Eigenschaft RightToLeft für ein Formular oder Steuerelement auf true einstellen, wird dadurch die Lesereihenfolge der Elemente im Formular umgekehrt, aber das Layout wird nicht von rechts nach links umgekehrt, also verursacht diese Einstellung keine Spiegelung. Wenn Sie diese Eigenschaft beispielsweise festlegen, werden die Schaltflächen "Minimieren", "Maximieren" und "Schließen " in der Titelleiste des Formulars nicht auf die linke Seite des Formulars verschoben. Ebenso erfordern einige Steuerelemente, z. B. das TreeView Steuerelement, eine Spiegelung, um ihre Anzeige so zu ändern, dass sie für Arabisch oder Hebräisch geeignet ist. Sie können diese Steuerelemente spiegeln, indem Sie die RightToLeftLayout Eigenschaft festlegen.

Sie können gespiegelte Versionen der folgenden Steuerelemente erstellen:

Einige Steuerelemente sind versiegelt. Daher können Sie kein neues Steuerelement von ihnen ableiten. Dazu gehören die Steuerungselemente ImageList und ProgressBar.

Siehe auch