Freigeben über


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?

Button

Stellt die Rechts-nach-Links-Lesefolge ein. Kehrt TextAlign, ImageAlign und TextImageRelation um.

Keine Auswirkung

Nein

CheckBox

Das Kontrollkästchen wird rechts vom Text angezeigt

Keine Auswirkung

Nein

CheckedListBox

Alle Kontrollkästchen werden rechts vom Text angezeigt

Keine Auswirkung

Nein

ColorDialog

Keine Auswirkung, hängt von der Sprache des Betriebssystems ab

Keine Auswirkung

Nein

ComboBox

Die Elemente im Kombinationsfeld sind rechtsbündig

Keine Auswirkung

Nein

ContextMenu

Wird rechtsbündig mit Rechts-nach-Links-Lesefolge angezeigt

Keine Auswirkung

Nein

DataGrid

Wird rechtsbündig mit Rechts-nach-Links-Lesefolge angezeigt

Keine Auswirkung

Nein

DataGridView

Wirkt sich sowohl auf die Rechts-nach-Links-Lesefolge als auch auf das Steuerelementlayout aus

Keine Auswirkung

Nein

DateTimePicker

Keine Auswirkung, hängt von der Sprache des Betriebssystems ab

Spiegelt das Steuerelement

Ja

DomainUpDown

Richtet die Schaltflächen Nach oben bzw. Nach unten linksbündig aus

Keine Auswirkung

Nein

ErrorProvider

Nicht unterstützt

Keine Auswirkung

Nein

FontDialog

Je nach Sprache des Betriebssystems

Keine Auswirkung

Nein

Form

Stellt Rechts-nach-Links-Lesefolge ein und kehrt Bildlaufleisten um

Spiegelt das Formular

Ja

GroupBox

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

HScrollBar

Startet mit einem rechtsbündigen Bildlauffeld (Ziehpunkt)

Keine Auswirkung

Nein

ImageList

Nicht erforderlich

Keine Auswirkung

Nein

Label

Wird rechtsbündig angezeigt. Kehrt TextAlign und ImageAlign um.

Keine Auswirkung

Nein

LinkLabel

Wird rechtsbündig angezeigt. Kehrt TextAlign und ImageAlign um.

Keine Auswirkung

Nein

ListBox

Die Elemente werden rechtsbündig angezeigt.

Keine Auswirkung

Nein

ListView

Setzt die Lesefolge auf Rechts-nach-Links, die Elemente bleiben linksbündig

Spiegelt das Steuerelement

Ja

MainMenu

Wird rechtsbündig angezeigt, zur Laufzeit auch mit Rechts-nach-Links-Lesefolge, nicht aber zur Entwurfszeit

Keine Auswirkung

Nein

MaskedTextBox

Zeigt Text von rechts nach links an.

Keine Auswirkung

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 Auswirkung

Nein

OpenFileDialog

Keine Auswirkung, hängt von der Sprache des Betriebssystems ab

Keine Auswirkung

Nein

PageSetupDialog

Keine Auswirkung, hängt von der Sprache des Betriebssystems ab

Keine Auswirkung

Nein

Panel

Untergeordnete Steuerelemente können diese Eigenschaft erben

Verwenden Sie ein TableLayoutPanel im Steuerelement für die Rechts-nach-Links-Unterstützung.

Ja

PictureBox

Nicht unterstützt

Keine Auswirkung

Nein

PrintDialog

Keine Auswirkung, hängt von der Sprache des Betriebssystems ab

Keine Auswirkung

Nein

PrintDocument

Die vertikale Bildlaufleiste wird linksbündig angezeigt, und die horizontale beginnt links

Keine Auswirkung

Nein

PrintPreviewDialog

Nicht unterstützt

Nicht unterstützt

Nein

ProgressBar

Keine Auswirkung

Spiegelt das Steuerelement

Ja

RadioButton

Das Optionsfeld wird rechts vom Text angezeigt

Keine Auswirkung

Nein

RichTextBox

Steuerelemente, die Text enthalten, werden von rechts nach links mit Rechts-nach-Links- Lesefolge angezeigt

Keine Auswirkung

Nein

SaveFileDialog

Keine Auswirkung, hängt von der Sprache des Betriebssystems ab

Keine Auswirkung

Nein

SplitContainer

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

Splitter

Nicht unterstützt

Keine Auswirkung

Nein

StatusBar

Nicht unterstützt. Verwenden Sie stattdessen StatusStrip

Keine Auswirkung. Verwenden Sie stattdessen StatusStrip

Nein

TabControl

Keine Auswirkung

Spiegelt das Steuerelement

Ja

TextBox

Text wird rechtsbündig mit Rechts-nach-Links-Lesefolge angezeigt

Keine Auswirkung

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 Auswirkung

Nein

TrackBar

Bildlauf- oder Positionsleisten beginnen auf der rechten Seite. Wenn in Orientation vertikal angegeben ist, werden Teilstriche rechts angezeigt

Keine Auswirkung

Nein

TreeView

Stellt nur die Rechts-nach-Links-Lesefolge ein

Spiegelt das Steuerelement

Ja

UserControl

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

VScrollBar

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

Weitere Ressourcen

Globalisieren von Windows Forms