Share via


Windows Forms Uygulamalarında İki Yönlü Destek

Arapça ve İbranice gibi çift yönlü (sağdan sola) dilleri destekleyen Windows tabanlı uygulamalar oluşturmak için Visual Studio'yu kullanabilirsiniz. Buna standart formlar, iletişim kutuları, MDI formları ve bu formlarda çalışabileceğiniz tüm denetimler (ad alanı içindeki Control tüm nesneler) dahildir.

Kültür Desteği

Kültür ve kullanıcı arabirimi kültürü ayarları, bir uygulamanın tarihler, saatler, para birimi ve diğer bilgilerle nasıl çalıştığını belirler. Kültür ve kullanıcı arabirimi kültürü desteği, iki yönlü diller için diğer dillerle aynıdır. Daha fazla bilgi için bkz . Genel Windows formları ve web formları için kültüre özgü sınıflar.

RightToLeft ve RightToLeftLayout Özellikleri

Formların türetildiği temel Control sınıf, formun RightToLeft okuma sırasını ve denetimlerini değiştirmek için ayarlayabileceğiniz bir özellik içerir. Formun özelliğini ayarlarsanız, formdaki RightToLeft denetimler varsayılan olarak bu ayarı devralır. Bununla birlikte, özelliği çoğu denetimde ayrı ayrı ayarlayabilirsiniz RightToLeft . Ayrıca bkz . Nasıl yapılır: Genelleştirme için Windows Forms'da Sağdan Sola Metin Görüntüleme.

Özelliğin RightToLeft etkisi bir denetimden diğerine farklılık gösterebilir. Bazı denetimlerde özelliği, ve ToolTip denetimlerinde ButtonTreeView olduğu gibi yalnızca okuma sırasını ayarlar. Diğer denetimlerde özelliği hem RightToLeft okuma sırasını hem de düzeni değiştirir. Bu, ve ComboBoxCheckBox denetimlerini içerirRadioButton. Diğer denetimler, özelliğin RightToLeftLayout düzenini sağdan sola yansıtmak için uygulanmasını gerektirir. Aşağıdaki tabloda ve RightToLeftLayout özelliklerinin tek tek Windows Forms denetimlerini nasıl RightToLeft etkilediğiyle ilgili ayrıntılar sağlanır.

Denetim/Bileşen RightToLeft özelliğinin etkisi RightToLeftLayout özelliğinin etkisi Yansıtma mı gerekiyor?
Button RTL okuma sırasını ayarlar. , ImageAlignve ters çevirir TextAlignTextImageRelation Etki yok Hayır
CheckBox Onay kutusu metnin sağ tarafında görüntülenir Etki yok Hayır
CheckedListBox Metnin sağ tarafında tüm onay kutuları görüntülenir Etki yok Hayır
ColorDialog Etkilenmez; işletim sisteminin diline bağlıdır Etki yok Hayır
ComboBox Birleşik giriş kutusu denetimindeki öğeler sağa hizalanmış Etki yok Hayır
ContextMenu RTL okuma sırası ile sağa hizalanmış olarak görünür Etki yok Hayır
DataGrid RTL okuma sırası ile sağa hizalanmış olarak görünür Etki yok Hayır
DataGridView Hem RTL okuma sırasını hem de denetim düzenini etkiler Etki yok Hayır
DateTimePicker Etkilenmez; işletim sisteminin diline bağlıdır Denetimi yansıtır Evet
DomainUpDown Yukarı ve aşağı düğmeleri sola hizalar Etki yok Hayır
ErrorProvider Desteklenmez Etki yok Hayır
FontDialog İşletim sisteminin diline bağlıdır Etki yok Hayır
Form RTL okuma sırasını ayarlar ve kaydırma çubuklarını ters çevirir Formu yansıtır Evet
GroupBox başlık sağa hizalı olarak görüntülenir. Alt denetimler bu özelliği devralabilir. Sağdan sola yansıtma desteği için denetimin içinde bir TableLayoutPanel kullanma Hayır
HScrollBar Kaydırma kutusu (başparmak) sağa hizalı olarak başlar Etki yok Hayır
ImageList Gerekli değil Etki yok Hayır
Label Sağa hizalı olarak görüntülenir. ve değerlerini tersine çevirir TextAlignImageAlign Etki yok Hayır
LinkLabel Sağa hizalı olarak görüntülenir. ve değerlerini tersine çevirir TextAlignImageAlign Etki yok Hayır
ListBox Öğeler sağa hizalanmış Etki yok Hayır
ListView Okuma sırasını RTL olarak ayarlar; öğeler sola hizalı kalır Denetimi yansıtır Evet
MainMenu Çalışma zamanında (tasarım zamanında değil) RTL okuma sırası ile sağa hizalanmış olarak görüntülenir Etki yok Hayır
MaskedTextBox Metni sağdan sola görüntüler. Etki yok Hayır
MonthCalendar Etkilenmez; işletim sisteminin diline bağlıdır Denetimi yansıtır Evet
NotifyIcon Desteklenmez Desteklenmez Hayır
NumericUpDown Yukarı ve aşağı düğmeleri sola hizalı Etki yok Hayır
OpenFileDialog Sağdan sola işletim sistemlerinde, içeren formun RightToLeft özelliğini iletişim kutusunu yerelleştirecek şekilde RightToLeft.Yes ayarlamak Etki yok Hayır
PageSetupDialog Etkilenmez; işletim sisteminin diline bağlıdır Etki yok Hayır
Panel Alt denetimler bu özelliği devralabilir Sağdan sola destek için denetimin içinde kullanın TableLayoutPanel Evet
PictureBox Desteklenmez Etki yok Hayır
PrintDialog Etkilenmez; işletim sisteminin diline bağlıdır Etki yok Hayır
PrintDocument Dikey kaydırma çubuğu sola hizalanır ve yatay kaydırma çubuğu soldan başlar Etki yok Hayır
PrintPreviewDialog Desteklenmez Desteklenmez Hayır
ProgressBar Bu özellik etkilenmez Denetimi yansıtır Evet
RadioButton Radyo düğmesi metnin sağ tarafında görüntülenir Etki yok Hayır
RichTextBox Metin içeren denetim öğeleri RTL okuma sırası ile sağdan sola görüntülenir Etki yok Hayır
SaveFileDialog Etkilenmez; işletim sisteminin diline bağlıdır Etki yok Hayır
SplitContainer Panel düzeni tersine çevrilir; dikey kaydırma çubuğu solda görünür; yatay kaydırma çubuğu sağdan başlar Alt denetimlerin sırasını yansıtmak için kullanma TableLayoutPanel Hayır
Splitter Desteklenmez Etki yok Hayır
StatusBar Desteklenmez; bunun yerine kullanın StatusStrip Etkisi yok; bunun yerine kullanın StatusStrip Hayır
TabControl Bu özellikten etkilenmez Denetimi yansıtır Evet
TextBox RTL okuma sırası ile metni sağdan sola görüntüler Etki yok Hayır
Timer Gerekli değil Gerekli değil Hayır
ToolBar Bu özellikten etkilenmez; bunun yerine kullanın ToolStrip Etkisi yok; bunun yerine kullanın ToolStrip Evet
ToolTip RTL okuma sırasını ayarlar Etki yok Hayır
TrackBar Kaydırma veya parça sağdan başlar; dikey olduğunda Orientation , sağdan keneler oluşur Etki yok Hayır
TreeView Yalnızca RTL okuma sırasını ayarlar Denetimi yansıtır Evet
UserControl Dikey kaydırma çubuğu solda görünür; yatay kaydırma çubuğunun sağ tarafında başparmak var Doğrudan destek yok; TableLayoutPanel Hayır
VScrollBar Kaydırılabilir denetimlerin sağ tarafı yerine sol tarafta görüntülenir Etki yok Hayır

Kodlama

Windows Forms Unicode'u desteklediği için çift yönlü uygulamalarınızı oluştururken herhangi bir karakter kümesi ekleyebilirsiniz. Ancak, tüm Windows Forms denetimleri tüm platformlarda Unicode'ı desteklemez.

GDI+

Sağdan sola okuma düzeniyle metin çizmek için GDI+ kullanabilirsiniz. Metin DrawString çizmek için kullanılan yöntemi, metnin çıkış noktasını tersine çevirmek için DirectionRightToLeft numaralandırmanın StringFormatFlags üyesine ayarlayabileceğiniz bir StringFormat parametreyi destekler.

Ortak İletişim Kutuları

Dosya Aç iletişim kutusu gibi sistem araçları Windows'un denetimi altındadır. Dil öğelerini işletim sisteminden devralırlar. Windows'un doğru dil ayarlarına sahip bir sürümünü kullanıyorsanız, bu iletişim kutuları çift yönlü dillerle düzgün çalışır.

Benzer şekilde, ileti kutuları işletim sisteminden geçer ve çift yönlü metni destekler. İleti kutusu düğmelerindeki başlık geçerli dil ayarını temel alır. Varsayılan olarak, ileti kutuları sağdan sola okuma sırasını kullanmaz, ancak ileti kutuları görüntülendiğinde okuma sırasını değiştirmek için bir parametre belirtebilirsiniz.

RightToLeft, Scrollbars ve ScrollableControl

Şu anda Windows Forms'da türetilen ScrollableControl tüm sınıfların her ikisi de RightToLeft etkinleştirildiğinde ve AutoScroll olarak ayarlandığında Yesdüzgün davranmasını engelleyen bir sınırlama vardır. Örneğin, formunuza (veya gibi FlowLayoutPanelTableLayoutPanel) türetilmiş Panel bir kapsayıcı sınıfı gibi Panelbir denetim yerleştirdiğinizden söz edelim. Kapsayıcıyı olarak ayarlarsanız AutoScroll ve kapsayıcının Anchor içindeki denetimlerden bir veya daha fazlalarında özelliğini olarak Rightayarlarsanız hiçbir kaydırma çubuğu görüntülenmez.Yes öğesinden ScrollableControl türetilen sınıf, olarak ayarlanmış Nogibi AutoScroll davranır.

Şu anda tek geçici çözüm, içine başka bir ScrollableControliç içe ScrollableControl geçmektir. Örneğin, bu durumda çalışmanız gerekiyorsaTableLayoutPanel, bunu bir Panel denetimin içine yerleştirebilir ve üzerinde Panel olarak YesayarlayabilirsinizAutoScroll.

Yansıtma

Yansıtma, kullanıcı arabirimi öğelerinin sağdan sola doğru akması için düzeni tersine çevirmeyi ifade eder. Örneğin, yansıtılmış bir Windows Formu'nda Simge Durumuna Küçült, Ekranı Kapla ve Kapat düğmeleri en sağda değil başlık çubuğunda en solda görünür.

Form veya denetimin RightToLeft özelliğinin true bir formdaki öğelerin okuma sırasını tersine çevirecek şekilde ayarlanması, ancak bu ayar düzeni sağdan sola olacak şekilde tersine çevirmez; yani yansıtmaya neden olmaz. Örneğin, bu özelliğin ayarlanması formun başlık çubuğundaki Simge Durumuna Küçült, Ekranı Kapla ve Kapat düğmelerini formun sol tarafına taşımaz. Benzer şekilde, denetim gibi TreeView bazı denetimler, ekranlarını Arapça veya İbranice için uygun olacak şekilde değiştirmek için yansıtma gerektirir. Bu denetimleri özelliğine RightToLeftLayout göre yansıtabilirsiniz.

Aşağıdaki denetimlerin yansıtılmış sürümlerini oluşturabilirsiniz:

Bazı kontroller korumalıdır. Bu nedenle, onlardan yeni bir denetim türetemezsiniz. Bunlar ve ProgressBar denetimlerini ImageList içerir.

Ayrıca bkz.