Obousměrná podpora pro formulářové aplikace Windows
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 v těchto formulářích pracovat – to znamená všechny objekty v Control oboru názvů.
Podpora jazykové verze
Nastavení jazykové verze a jazykové verze uživatelského rozhraní určují, jak aplikace funguje s daty, časy, měnou a dalšími informacemi. Podpora jazykové verze a jazykové verze uživatelského rozhraní je stejná pro obousměrné jazyky jako pro všechny ostatní jazyky. Další informace naleznete v tématu Třídy specifické pro jazykovou verzi pro globální formuláře 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 formuláře RightToLeft , ve výchozím nastavení ovládací prvky ve formuláři toto nastavení dědí. Vlastnost však můžete nastavit RightToLeft také jednotlivě u většiny ovládacích prvků. Viz také Postupy: Zobrazení textu zprava doleva v model Windows Forms pro globalizaci.
Účinek RightToLeft vlastnosti 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 ButtonTreeView a ToolTip ovládacích prvcích. V jiných ovládacích prvcích změní RightToLeft vlastnost pořadí čtení i rozložení. To zahrnuje ovládací prvky RadioButtonComboBox a CheckBox ovládací prvky. Jiné ovládací prvky vyžadují, aby RightToLeftLayout vlastnost byla použita pro zrcadlení rozložení zprava doleva. Následující tabulka obsahuje podrobnosti o tom, jak RightToLeft ovlivňují jednotlivé ovládací prvky model Windows Forms a RightToLeftLayout vlastnosti.
Řízení/komponenta | Efekt vlastnosti RightToLeft | Efekt Vlastnosti RightToLeftLayout | Vyžaduje zrcadlení? |
---|---|---|---|
Button | Nastaví pořadí čtení RTL. Obrácení TextAlign, ImageAligna TextImageRelation | Žádný vliv | No |
CheckBox | Zaškrtávací políčko se zobrazí na pravé straně textu. | Žádný vliv | No |
CheckedListBox | Všechna zaškrtávací políčka se zobrazují na pravé straně textu. | Žádný vliv | No |
ColorDialog | Ovlivněno; závisí na jazyce operačního systému. | Žádný vliv | No |
ComboBox | Položky v ovládacím prvku pole se seznamem jsou zarovnané doprava | Žádný vliv | No |
ContextMenu | Zobrazí se doprava zarovnané s pořadím čtení RTL. | Žádný vliv | No |
DataGrid | Zobrazí se doprava zarovnané s pořadím čtení RTL. | Žádný vliv | No |
DataGridView | Ovlivňuje pořadí čtení RTL i rozložení ovládacího prvku. | Žádný vliv | No |
DateTimePicker | Ovlivněno; závisí na jazyce operačního systému. | Zrcadlí ovládací prvek. | Ano |
DomainUpDown | Tlačítka nahoru a dolů zarovná doleva. | Žádný vliv | No |
ErrorProvider | Nepodporováno | Žádný vliv | No |
FontDialog | Závisí na jazyce operačního systému. | Žádný vliv | No |
Form | Nastaví pořadí čtení RTL a obrácené posuvníky. | Zrcadlí formulář. | Ano |
GroupBox | Popis je zarovnaná doprava. Podřízené ovládací prvky mohou dědit tuto vlastnost. | TableLayoutPanel Použití uvnitř ovládacího prvku pro podporu zrcadlení zprava doleva | No |
HScrollBar | Začíná posuvníkem (palcem) zarovnaným doprava. | Žádný vliv | No |
ImageList | Nepovinné | Žádný vliv | No |
Label | Zobrazí se zarovnané doprava. Obrácení a obrácení TextAlignImageAlign | Žádný vliv | No |
LinkLabel | Zobrazí se zarovnané doprava. Obrácení a obrácení TextAlignImageAlign | Žádný vliv | No |
ListBox | Položky jsou zarovnané doprava | Žádný vliv | No |
ListView | Nastaví pořadí čtení na rtL; prvky zůstanou zarovnané doleva | Zrcadlí ovládací prvek. | Ano |
MainMenu | Zobrazená doprava zarovnaná s pořadím čtení RTL za běhu (ne v době návrhu) | Žádný vliv | No |
MaskedTextBox | Zobrazí text zprava doleva. | Žádný vliv | No |
MonthCalendar | Ovlivněno; závisí na jazyce operačního systému. | Zrcadlí ovládací prvek. | Ano |
NotifyIcon | Nepodporováno | Nepodporováno | No |
NumericUpDown | Tlačítka nahoru a dolů jsou zarovnaná doleva | Žádný vliv | No |
OpenFileDialog | V operačních systémech se zprava doleva nastaví vlastnost obsahující formulář RightToLeft tak, aby se RightToLeft.Yes dialog lokalizoval. | Žádný vliv | No |
PageSetupDialog | Ovlivněno; závisí na jazyce operačního systému. | Žádný vliv | No |
Panel | Podřízené ovládací prvky mohou tuto vlastnost dědit. | Použití TableLayoutPanel v ovládacím prvku pro podporu zprava doleva | Ano |
PictureBox | Nepodporováno | Žádný vliv | No |
PrintDialog | Ovlivněno; závisí na jazyce operačního systému. | Žádný vliv | No |
PrintDocument | Svislý posuvník se zarovná doleva a vodorovný posuvník začíná odleva. | Žádný vliv | No |
PrintPreviewDialog | Nepodporováno | Nepodporováno | No |
ProgressBar | Tato vlastnost nemá vliv | Zrcadlí ovládací prvek. | Ano |
RadioButton | Přepínač se zobrazí na pravé straně textu. | Žádný vliv | No |
RichTextBox | Ovládací prvky, které obsahují text, se zobrazují zprava doleva pomocí pořadí čtení RTL. | Žádný vliv | No |
SaveFileDialog | Ovlivněno; závisí na jazyce operačního systému. | Žádný vliv | No |
SplitContainer | Rozložení panelu je obrácené; svislý posuvník se zobrazí vlevo; Vodorovný posuvník začíná od pravého | TableLayoutPanel Použití k zrcadlení pořadí podřízených ovládacích prvků | No |
Splitter | Nepodporováno | Žádný vliv | No |
StatusBar | Nepodporováno; místo toho použít StatusStrip | Žádný účinek; místo toho použít StatusStrip | No |
TabControl | Tato vlastnost není ovlivněna | Zrcadlí ovládací prvek. | Ano |
TextBox | Zobrazí text zprava doleva s pořadím čtení RTL. | Žádný vliv | No |
Timer | Nepovinné | Nepovinné | No |
ToolBar | Tato vlastnost není ovlivněna; místo toho použít ToolStrip | Žádný účinek; místo toho použít ToolStrip | Ano |
ToolTip | Nastaví pořadí čtení VE formátu RTL. | Žádný vliv | No |
TrackBar | Posouvání nebo dráha začíná od pravého; když Orientation je svislý, klíště se vyskytují zprava | Žádný vliv | No |
TreeView | Nastaví pouze pořadí čtení ve formátu RTL. | Zrcadlí ovládací prvek. | Ano |
UserControl | Svislý posuvník se zobrazí vlevo; vodorovný posuvník má palec vpravo | Žádná přímá podpora; použít TableLayoutPanel | No |
VScrollBar | Zobrazí se na levé straně místo pravé strany posuvných ovládacích prvků. | Žádný vliv | No |
Kódování
model 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 model 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 člen výčtu StringFormatFlags , 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. Popis tlačítek v poli se zprávou jsou založeny 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ě existuje omezení v model Windows Forms, které brání všem třídám odvozeným z toho, aby ScrollableControl správně fungovaly, pokud RightToLeft je povolena a AutoScroll je nastavena na Yes. Řekněme například, že do formuláře umístíte ovládací prvek , například Paneltřídu kontejneru odvozenou z Panel formuláře (například FlowLayoutPanel nebo TableLayoutPanel)). Pokud jste v kontejneru nastavili Yes a pak nastavili AnchorAutoScroll vlastnost u jednoho nebo více ovládacích prvků uvnitř kontejneru na Right, pak se nikdy nezobrazí žádný posuvník. Třída odvozená z ScrollableControl aktů, jako by AutoScroll byla nastavena na No.
Jediným alternativním řešením je vnoření uvnitř ScrollableControl jiné ScrollableControl. Pokud například potřebujete TableLayoutPanel pracovat v této situaci, můžete ho Panel umístit do ovládacího prvku a nastavit AutoScroll na Panel hodnotu Yes.
Zrcadlení
Zrcadlení odkazuje na vrácení rozložení prvků uživatelského rozhraní tak, aby tok 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 formuláře nebo ovládacího prvku RightToLeft pro true
obrácení pořadí čtení prvků ve formuláři, ale toto nastavení nevrátí rozložení zprava doleva – to znamená, že nezpůsobí zrcadlení. Například nastavení této vlastnosti nepřesune tlačítka Minimalizovat, Maximalizovat a Zavřít v záhlaví formuláře na levou stranu formuláře. Podobně některé ovládací prvky, například TreeView ovládací prvek, vyžadují zrcadlení, aby jejich zobrazení bylo vhodné pro arabštinu nebo hebrejštinu. Tyto ovládací prvky můžete zrcadlit nastavením RightToLeftLayout vlastnosti.
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ří mezi ImageList ně ovládací prvky a ProgressBar ovládací prvky.
Viz také
.NET Desktop feedback