Dela via


Bi-Directional stöd för Windows Forms-program

Du kan använda Visual Studio för att skapa Windows-baserade program som stöder dubbelriktade språk (höger till vänster) som arabiska och hebreiska. Detta omfattar standardformulär, dialogrutor, MDI-formulär och alla kontroller som du kan arbeta med i dessa formulär, dvs. alla objekt i Control namnrymd.

Kulturstöd

Kultur- och användargränssnittskulturinställningar avgör hur ett program fungerar med datum, tider, valuta och annan information. Stöd för kultur- och användargränssnittskultur är detsamma för dubbelriktade språk som för andra språk. Mer information finns i Kulturspecifika klasser för globala Windows-formulär och webbformulär.

Egenskaper för RightToLeft och RightToLeftLayout

Basklassen Control, från vilken formulär härleds, innehåller en RightToLeft egenskap som du kan ange för att ändra läsordningen för ett formulär och dess kontroller. Om du anger formulärets egenskap RightToLeft ärver som standard kontroller i formuläret den här inställningen. Du kan dock också ange egenskapen RightToLeft individuellt på de flesta kontroller. Se även avsnitt Så här: Visa höger-till-vänster-text i Windows Forms för globalisering.

Effekten av egenskapen RightToLeft kan skilja sig från en kontroll till en annan. I vissa kontroller anger egenskapen endast läsordningen, som i kontrollerna Button, TreeView och ToolTip. I andra kontroller ändrar egenskapen RightToLeft både läsordning och layout. Detta omfattar kontrollerna RadioButton, ComboBox och CheckBox. Andra kontroller kräver att egenskapen RightToLeftLayout tillämpas för att spegla layouten från höger till vänster. Följande tabell innehåller information om hur egenskaperna RightToLeft och RightToLeftLayout påverkar enskilda Windows Forms-kontroller.

Kontroll/komponent Effekten av egenskapen RightToLeft Effekten av egenskapen RightToLeftLayout Kräver spegling?
Button Anger RTL-läsordningen. Omvänder TextAlign, ImageAlignoch TextImageRelation Ingen effekt Nej
CheckBox Kryssrutan visas till höger i texten Ingen effekt Nej
CheckedListBox Alla kryssrutor visas till höger i texten Ingen effekt Nej
ColorDialog Påverkas inte; beror på operativsystemets språk Ingen effekt Nej
ComboBox Objekt i kombinationsrutekontrollen är högerjusterade Ingen effekt Nej
ContextMenu Är högerjusterad med RTL-läsriktning Ingen effekt Nej
DataGrid Visas högerjusterad med RTL-läsordning Ingen effekt Nej
DataGridView Påverkar både RTL-läsordning och kontrolllayout Ingen effekt Nej
DateTimePicker Påverkas inte; beror på operativsystemets språk Speglar kontrollen Ja
DomainUpDown Vänsterjusterar upp- och nedpilarna Ingen effekt Nej
ErrorProvider Stöds inte Ingen effekt Nej
FontDialog Beror på operativsystemets språk Ingen effekt Nej
Form Anger RTL-läsordning och vänder rullningslister Speglar formuläret Ja
GroupBox Bildtexten visas högerjusterad. Underordnade kontroller kan ärva den här egenskapen. Använd en TableLayoutPanel i kontrollen för stöd för höger-till-vänster-spegling. Nej
HScrollBar Börjar med rullningsrutan (tumme) högerjusterad Ingen effekt Nej
ImageList Krävs inte Ingen effekt Nej
Label Visas som högerjusterad. Omvänder TextAlign och ImageAlign Ingen effekt Nej
LinkLabel Visas högerjusterad. Omvänder TextAlign och ImageAlign Ingen effekt Nej
ListBox Objekten är högerjusterade Ingen effekt Nej
ListView Anger läsordningen till RTL; element förblir vänsterjusterade Speglar styrningen Ja
MainMenu Visas högerjusterat med RTL-läsordning vid körning (inte vid designtid) Ingen effekt Nej
MaskedTextBox Visar text från höger till vänster. Ingen effekt Nej
MonthCalendar Påverkas inte; beror på operativsystemets språk Återspeglar kontrollen Ja
NotifyIcon Stöds inte Stöds inte Nej
NumericUpDown Upp- och nedknapparna är vänsterjusterade Ingen effekt Nej
OpenFileDialog För operativsystem med höger-till-vänster-skrivsystem kan dialogrutan lokaliseras genom att ange egenskapen RightToLeft för det innehållande formuläret till RightToLeft.Yes. Ingen effekt Nej
PageSetupDialog Påverkas inte; beror på operativsystemets språk Ingen effekt Nej
Panel Underordnade kontroller kan ärva den här egenskapen Använd TableLayoutPanel i kontrollen för stöd från höger till vänster Ja
PictureBox Stöds inte Ingen effekt Nej
PrintDialog Påverkas inte; beror på operativsystemets språk Ingen effekt Nej
PrintDocument Den lodräta rullningslisten blir vänsterjusterad och den vågräta rullningslisten börjar från vänster Ingen effekt Nej
PrintPreviewDialog Stöds inte Stöds inte Nej
ProgressBar Påverkas inte av den här egenskapen Speglar kontrollen Ja
RadioButton Alternativknappen visas till höger om texten Ingen effekt Nej
RichTextBox Kontrollelement som innehåller text visas från höger till vänster med RTL-läsordning Ingen effekt Nej
SaveFileDialog Påverkas inte; beror på operativsystemets språk Ingen effekt Nej
SplitContainer Panellayouten är omvänd. lodrät rullningslist visas till vänster. vågrät rullningslist startar från höger Använd en TableLayoutPanel för att spegla ordningen av underordnade kontroller Nej
Splitter Stöds inte Ingen effekt Nej
StatusBar Stöds inte; använd StatusStrip i stället Ingen effekt; använd StatusStrip i stället Nej
TabControl Påverkas inte av den här egenskapen Speglar kontrollen Ja
TextBox Visar text från höger till vänster med RTL-läsordning Ingen effekt Nej
Timer Krävs inte Krävs inte Nej
ToolBar Påverkas inte av den här egenskapen. använd ToolStrip i stället Ingen effekt; använd ToolStrip i stället Ja
ToolTip Anger RTL-läsordningen Ingen effekt Nej
TrackBar Rullningslisten eller banan börjar från höger. När Orientation är vertikal sker markeringar från höger. Ingen effekt Nej
TreeView Anger endast RTL-läsordningen Återspeglar kontrollen Ja
UserControl Lodrät rullningslist visas till vänster; vågrät rullningslist har glidknappen till höger. Inget direkt stöd; använda en TableLayoutPanel Nej
VScrollBar Visas till vänster i stället för höger sida av rullningsbara kontroller Ingen effekt Nej

Kodning

Windows Forms stöder Unicode, så du kan inkludera valfri teckenuppsättning när du skapar dina dubbelriktade program. Alla Windows Forms-kontroller stöder dock inte Unicode på alla plattformar.

GDI+

Du kan använda GDI+ för att rita text med läsordning från höger till vänster. Metoden DrawString, som används för att rita text, stöder en StringFormat parameter som du kan ange till DirectionRightToLeft medlem i StringFormatFlags-uppräkningen för att återställa ursprungspunkten för texten.

Vanliga dialogrutor

Systemverktyg som dialogrutan Öppna fil styrs av Windows. De ärver språkelement från operativsystemet. Om du använder en version av Windows med rätt språkinställningar fungerar dessa dialogrutor korrekt med dubbelriktade språk.

På samma sätt går meddelanderutor genom operativsystemet och stöder dubbelriktad text. Bildtexterna på knapparna i meddelanderutan baseras på den aktuella språkinställningen. Som standard använder inte meddelanderutor läsordningen från höger till vänster, men du kan ange en parameter för att ändra läsordningen när meddelanderutorna visas.

RightToLeft, rullningslister och ScrollableControl

Det finns för närvarande en begränsning i Windows Forms som förhindrar att alla klasser som härleds från ScrollableControl fungerar korrekt när både RightToLeft är aktiverat och AutoScroll är inställt på Yes. Anta till exempel att du placerar en kontroll som Panel– eller en containerklass som härletts från Panel (till exempel FlowLayoutPanel eller TableLayoutPanel)– i formuläret. Om du ställer in AutoScroll på containern till Yes och sedan anger egenskapen Anchor på en eller flera av kontrollerna i containern till Rightvisas ingen rullningslist. Klassen som härleds från ScrollableControl fungerar som om AutoScroll hade angetts till No.

För närvarande är den enda lösningen att kapsla ScrollableControl i en annan ScrollableControl. Om du till exempel behöver TableLayoutPanel för att fungera i den här situationen kan du placera den i en Panel kontroll och ange AutoScrollPanel till Yes.

Spegling

Spegling syftar på att återställa layouten för gränssnittselement så att de flödar från höger till vänster. I ett speglat Windows-formulär visas till exempel knapparna Minimera, Maximera och Stäng längst till vänster i namnlisten, inte till höger.

Om du anger ett formulärs eller en kontrolls RightToLeft egenskap till true ändrar läsordningen för element i ett formulär, men den här inställningen ändrar inte layouten så att den är från höger till vänster, dvs. det orsakar inte spegling. Om du till exempel anger den här egenskapen flyttas inte knapparna Minimera, Maximeraoch Stäng knappar i formulärets rubrikfält till vänster i formuläret. På samma sätt kräver vissa kontroller, till exempel TreeView kontroll, spegling för att ändra deras visning så att den är lämplig för arabiska eller hebreiska. Du kan spegla dessa kontroller genom att ange egenskapen RightToLeftLayout.

Du kan skapa speglade versioner av följande kontroller:

Vissa kontroller är förseglade. Därför kan du inte härleda en ny kontroll från dem. Dessa omfattar kontrollerna ImageList och ProgressBar.

Se även