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.
.NET Desktop feedback
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin