podpora Bi-Directional pro aplikace Windows Forms
Visual Studio můžete použít k vytváření aplikací založených na Windows, které podporují obousměrné jazyky (zprava doleva), jako je arabština a hebrejština. To zahrnuje standardní formuláře, dialogová okna, formuláře MDI a všechny ovládací prvky, se kterými můžete pracovat v těchto formulářích – to znamená všechny objekty v oboru názvů Control.
Podpora kultury
Nastavení jazykové a uživatelského rozhraní určují, jak aplikace zpracovává data, časy, měny a další informace. Podpora kulturního nastavení a kulturního nastavení uživatelského rozhraní je stejná pro obousměrné jazyky jako u všech ostatních jazyků. Další informace naleznete v tématu jazykově specifické třídy pro globální Windows a webové formuláře.
RightToLeft a RightToLeftLayout – vlastnosti
Základní Control třída, ze které formuláře odvozují, obsahuje RightToLeft vlastnost, kterou můžete nastavit pro změnu pořadí čtení formuláře a jeho ovládacích prvků. Pokud nastavíte vlastnost RightToLeft formuláře, ovládací prvky formuláře budou ve výchozím stavu dědit toto nastavení. Vlastnost RightToLeft ale můžete nastavit také jednotlivě u většiny ovládacích prvků. Viz také Jak na to: Zobrazení textu zprava doleva ve Windows Forms pro globalizaci.
Účinek vlastnosti RightToLeft se může lišit od jednoho ovládacího prvku k druhému. V některých ovládacích prvcích vlastnost nastaví pouze pořadí čtení, jako v Button, TreeView a ToolTip ovládacích prvcích. V jiných ovládacích prvcích vlastnost RightToLeft mění jak pořadí čtení, tak rozložení. To zahrnuje ovládací prvky RadioButton, ComboBox a CheckBox. Jiné ovládací prvky vyžadují, aby vlastnost RightToLeftLayout byla použita pro zrcadlení rozložení zprava doleva. Následující tabulka obsahuje podrobnosti o tom, jak RightToLeft a RightToLeftLayout vlastnosti ovlivňují jednotlivé ovládací prvky Windows Forms.
Řízení/komponenta | Efekt vlastnosti RightToLeft | Efekt Vlastnosti RightToLeftLayout | Vyžaduje zrcadlení? |
---|---|---|---|
Button | Nastaví pořadí čtení RTL. Obrací TextAlign, ImageAligna TextImageRelation | Žádný efekt | Ne |
CheckBox | Zaškrtávací políčko se zobrazí na pravé straně textu. | Žádný efekt | Ne |
CheckedListBox | Všechna zaškrtávací políčka se zobrazují na pravé straně textu. | Žádný efekt | Ne |
ColorDialog | Neovlivněno; závisí na jazyce operačního systému. | Žádný efekt | Ne |
ComboBox | Položky v ovládacím prvku kombinovaného pole jsou zarovnané doprava | Žádný efekt | Ne |
ContextMenu | Zobrazí se doprava zarovnané s pořadím čtení RTL. | Žádný efekt | Ne |
DataGrid | Zobrazí se doprava zarovnané s pořadím čtení RTL. | Žádný efekt | Ne |
DataGridView | Ovlivňuje pořadí čtení RTL i rozložení ovládacího prvku. | Žádný efekt | Ne |
DateTimePicker | Neovlivněno; závisí na jazyce operačního systému. | Zrcadlí řídicí prvek. | Ano |
DomainUpDown | Zarovnává tlačítka pro pohyb nahoru a dolů vlevo. | Žádný efekt | Ne |
ErrorProvider | Nepodporováno | Žádný efekt | Ne |
FontDialog | Závisí na jazyce operačního systému. | Žádný efekt | Ne |
Form | Nastaví pořadí čtení RTL a obrátí směr posuvníků. | Zrcadlí formulář. | Ano |
GroupBox | Titulek se zobrazí zarovnaný doprava. Dětské ovládací prvky mohou dědit tuto vlastnost. | Použijte TableLayoutPanel v ovládacím prvku k zajištění podpory zrcadlení zprava doleva | Ne |
HScrollBar | Začíná posuvníkem (palcem) zarovnaným doprava. | Žádný efekt | Ne |
ImageList | Nepožaduje se | Žádný efekt | Ne |
Label | Zobrazí se zarovnané doprava. Obrácení TextAlign a ImageAlign | Žádný efekt | Ne |
LinkLabel | Zobrazí se zarovnané doprava. Obrací TextAlign a ImageAlign | Žádný efekt | Ne |
ListBox | Položky jsou zarovnané doprava | Žádný efekt | Ne |
ListView | Nastaví pořadí čtení na rtL; prvky zůstanou zarovnané doleva | Zrcadlí ovládání. | Ano |
MainMenu | Zobrazená doprava zarovnaná s pořadím čtení RTL za běhu (ne v době návrhu) | Žádný efekt | Ne |
MaskedTextBox | Zobrazí text zprava doleva. | Žádný efekt | Ne |
MonthCalendar | Neovlivněno; závisí na jazyce operačního systému. | Zrcadlí ovládání. | Ano |
NotifyIcon | Nepodporováno | Nepodporováno | Ne |
NumericUpDown | Tlačítka nahoru a dolů jsou zarovnaná doleva | Žádný efekt | Ne |
OpenFileDialog | V operačních systémech se zprava doleva nastaví vlastnost obsahující RightToLeft formuláře tak, aby RightToLeft.Yes dialog lokalizovala. | Žádný efekt | Ne |
PageSetupDialog | Neovlivněno; závisí na jazyce operačního systému. | Žádný efekt | Ne |
Panel | Podřízené ovládací prvky mohou tuto vlastnost dědit. | Použijte TableLayoutPanel v ovládacím prvku pro podporu zprava doleva | Ano |
PictureBox | Nepodporováno | Žádný efekt | Ne |
PrintDialog | Neovlivněno; závisí na jazyce operačního systému. | Žádný efekt | Ne |
PrintDocument | Svislý posuvník se zarovná doleva a vodorovný posuvník začíná odleva. | Žádný efekt | Ne |
PrintPreviewDialog | Nepodporováno | Nepodporováno | Ne |
ProgressBar | Tato vlastnost nemá vliv | Zrcadlí ovládací prvek. | Ano |
RadioButton | Rádiové tlačítko se zobrazí na pravé straně textu. | Žádný efekt | Ne |
RichTextBox | Ovládací prvky, které obsahují text, se zobrazují zprava doleva pomocí pořadí čtení RTL. | Žádný efekt | Ne |
SaveFileDialog | Neovlivněno; závisí na jazyce operačního systému. | Žádný efekt | Ne |
SplitContainer | Rozložení panelu je obrácené; svislý posuvník se zobrazí vlevo; Vodorovný posuvník začíná od pravého | Použijte TableLayoutPanel k zrcadlení pořadí podřízených ovládacích prvků | Ne |
Splitter | Nepodporováno | Žádný efekt | Ne |
StatusBar | Nepodporováno; místo toho použijte StatusStrip | Žádný účinek; místo toho použijte StatusStrip | Ne |
TabControl | Tato vlastnost není ovlivněna | Zrcadlí ovládání. | Ano |
TextBox | Zobrazí text zprava doleva s pořadím čtení RTL. | Žádný efekt | Ne |
Timer | Nepožaduje se | Nepožaduje se | Ne |
ToolBar | Tato vlastnost není ovlivněna; místo toho použijte ToolStrip | Žádný účinek; místo toho použijte ToolStrip | Ano |
ToolTip | Nastaví pořadí čtení RTL. | Žádný efekt | Ne |
TrackBar | Posouvání nebo slider začíná od pravé strany; pokud je Orientation svisle, značky se objevují zprava. | Žádný efekt | Ne |
TreeView | Nastaví pouze pořadí čtení ve formátu RTL. | Zrcadlí ovládání. | Ano |
UserControl | Svislý posuvník se zobrazí vlevo; vodorovný posuvník má palec vpravo | Žádná přímá podpora; použijte TableLayoutPanel | Ne |
VScrollBar | Zobrazí se na levé straně místo pravé strany posuvných ovládacích prvků. | Žádný efekt | Ne |
Kódování
Windows Forms podporuje Unicode, takže při vytváření obousměrných aplikací můžete zahrnout libovolnou znakovou sadu. Ne všechny ovládací prvky Windows Forms však podporují kódování Unicode na všech platformách.
GDI+
Pomocí GDI+ můžete nakreslit text s pořadím čtení zprava doleva. Metoda DrawString, která se používá k kreslení textu, podporuje StringFormat
parametr, který můžete nastavit na DirectionRightToLeft člena StringFormatFlags výčtu, aby bylo možné obrátit bod původu textu.
Běžná dialogová okna
Systémové nástroje, jako je dialogové okno Otevřít soubor, jsou pod kontrolou Systému Windows. Dědí prvky jazyka z operačního systému. Pokud používáte verzi Windows se správným nastavením jazyka, budou tato dialogová okna správně fungovat s obousměrnými jazyky.
Podobně pole zpráv procházejí operačním systémem a podporují obousměrný text. Titulky u tlačítek pole se zprávou jsou založené na aktuálním nastavení jazyka. Ve výchozím nastavení pole zpráv nepoužívají pořadí čtení zprava doleva, ale při zobrazení polí zpráv můžete zadat parametr, který změní pořadí čtení.
RightToLeft, Posuvníky a ScrollableControl
V současné době platí omezení v modelu Windows Forms, které brání všem třídám odvozeným z ScrollableControl, aby správně fungovaly, pokud je povolena RightToLeft i AutoScroll je nastavena na Yes. Řekněme například, že do formuláře umístíte ovládací prvek, například Panel, nebo třídu kontejneru odvozenou z Panel (například FlowLayoutPanel nebo TableLayoutPanel).). Pokud nastavíte AutoScroll v kontejneru na Yes a pak nastavíte vlastnost Anchor u jednoho nebo více ovládacích prvků uvnitř kontejneru na Right, pak se nikdy nezobrazí posuvník. Třída odvozená z ScrollableControl funguje, jako by byla AutoScroll nastavena na No.
Jediným alternativním řešením je vnořit ScrollableControl uvnitř jiného ScrollableControl. Pokud například potřebujete, aby TableLayoutPanel fungoval v této situaci, můžete ho umístit do ovládacího prvku Panel a nastavit AutoScroll na Panel jako Yes.
Zrcadlení
zrcadlení odkazuje na obrácení rozložení prvků UI tak, aby byly uspořádány zprava doleva. V zrcadleném formuláři Windows Form se například tlačítka Minimalizovat, Maximalizovat a Zavřít zobrazují úplně vlevo na záhlaví, ne úplně vpravo.
Nastavení vlastnosti RightToLeft formuláře nebo ovládacího prvku na true
obrátí pořadí čtení prvků na formuláři, ale toto nastavení nezmění rozložení na zprava doleva – to znamená, že nezpůsobí zrcadlení. Například nastavení této vlastnosti nepřesune tlačítko Minimalizovat, tlačítko Maximalizovata tlačítko Zavřít vlevo do záhlaví formuláře. Podobně některé ovládací prvky, například ovládací prvek TreeView, vyžadují zrcadlení, aby jejich zobrazení bylo vhodné pro arabštinu nebo hebrejštinu. Tyto ovládací prvky můžete zrcadlit nastavením vlastnosti RightToLeftLayout.
Můžete vytvořit zrcadlené verze následujících ovládacích prvků:
Některé ovládací prvky jsou zapečetěné. Proto z nich nelze odvodit nový ovládací prvek. Patří sem ovládací prvky ImageList a ProgressBar.
Viz také
.NET Desktop feedback