Sdílet prostřednictvím


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é