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 AutoScroll på Panel 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
.NET Desktop feedback