Windows Forms Uygulamalarında İki Yönlü Destek
Arapça ve İbranice Visual Studio iki yönlü (sağdan sola) dilleri destekleyen Windows tabanlı uygulamalar oluşturmak için Visual Studio'i kullanabilirsiniz. Buna standart formlar, iletişim kutuları, MDI formları ve bu formlarda çalışabilirsiniz tüm denetimler (yani ad alanı nesneleri) Control dahildir.
Kültür Desteği
Kültür ve kullanıcı arabirimi kültür ayarları bir uygulamanın tarihler, saat, para birimi ve diğer bilgilerle nasıl çalıştığını belirler. Kültür ve kullanıcı arabirimi kültürü desteği, diğer dillerde olduğu gibi çift yönlü diller için de aynıdır. Daha fazla bilgi için bkz. Genel veri formları ve web Windows kültüre özgü sınıflar.
RightToLeft ve RightToLeftLayout Özellikleri
Formların türetilen temel sınıfı, bir formun ve denetimlerinin okuma sıralamasını değiştirmek ControlRightToLeft için ayarlandırabilirsiniz bir özellik içerir. Formun özelliğini RightToLeft ayarlarsanız, formda varsayılan olarak denetimler bu ayarı devralın. Ancak, özelliği çoğu RightToLeft denetimde ayrı ayrı da ayarlayabilirsiniz. Ayrıca bkz. Genelleştirme için Formlarda Sağdan Sola Windows Görüntüleme.
Özelliğin etkisi RightToLeft bir denetimden diğerine farklılık gösterebilir. Bazı denetimlerde özelliği, ve denetimlerde olduğu gibi yalnızca okuma ButtonTreeView sıralamalarını ToolTip ayarlar. Diğer denetimlerde özelliği RightToLeft hem okuma düzenini hem de düzeni değiştirir. Bu , RadioButton ve ComboBox denetimlerini CheckBox içerir. Diğer denetimler, RightToLeftLayout sağdan sola doğru düzenini yansıtmak için özelliğinin uygulanması gerekir. Aşağıdaki tabloda ve özelliklerinin tek tek Form RightToLeftRightToLeftLayout denetimlerinin nasıl etkilediğine Windows ve ve bilgileri ve sağlar.
| Denetim/Bileşen | RightToLeft özelliğinin etkisi | RightToLeftLayout özelliğinin etkisi | Yansıtma mı gerekir? |
|---|---|---|---|
| Button | RTL okuma sırası ayarlar. , TextAlignImageAlign ve 'i tersine çevirme TextImageRelation | Etki yok | Hayır |
| CheckBox | Onay kutusu metnin sağ tarafında görüntülenir | Etki yok | Hayır |
| CheckedListBox | Tüm onay kutuları metnin sağ tarafında 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 denetiminde öğeler sağa hizalanmış | Etki yok | Hayır |
| ContextMenu | RTL okuma sırasıyla sağa hizalanmış olarak görünür | Etki yok | Hayır |
| DataGrid | RTL okuma sırasıyla sağa hizalanmış olarak görünür | Etki yok | Hayır |
| DataGridView | RtL okuma düzenini ve denetim düzenini etkiler | Etki yok | Hayır |
| DateTimePicker | Etkilenmez; işletim sisteminin diline bağlıdır | Denetimi yansıtıyor | Yes |
| 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ı ayarlar ve kaydırma çubuklarını tersine çevirme | Formu yansıtıyor | Yes |
| GroupBox | Açıklamalı alt yazı sağa hizalanmış olarak görüntülenir. Alt denetimler bu özelliği devralabilir. | Sağdan TableLayoutPanel sola yansıtma desteği için denetimin içinde bir kullanın | Hayır |
| HScrollBar | Kaydırma kutusu (başparmak) sağa hizalanmış şekilde başlar | Etki yok | Hayır |
| ImageList | Gerekli değil | Etki yok | Hayır |
| Label | Sağa hizalanmış olarak görüntülenir. Ters TextAlign çevirmeler ve ImageAlign | Etki yok | Hayır |
| LinkLabel | Sağa hizalanmış olarak görüntülenir. Ters TextAlign çevirmeler ve ImageAlign | Etki yok | Hayır |
| ListBox | Öğeler sağa hizalanmış | Etki yok | Hayır |
| ListView | Okuma sıralamayı RTL olarak ayarlar; öğeler sola hizalı kalır | Denetimi yansıtıyor | Yes |
| MainMenu | Çalışma zamanında RTL okuma sırasıyla (tasarım zamanında değil) sağa hizalanmış olarak görüntülenir | Etki yok | Hayır |
| MaskedTextBox | Sağdan sola metni görüntüler. | Etki yok | Hayır |
| MonthCalendar | Etkilenmez; işletim sisteminin diline bağlıdır | Denetimi yansıtıyor | Yes |
| NotifyIcon | Desteklenmez | Desteklenmez | Hayır |
| NumericUpDown | Yukarı ve aşağı düğmeler sola hizalanır | Etki yok | Hayır |
| OpenFileDialog | Sağdan sola işletim sistemlerinde, içeren formun özelliğini iletişim kutusunu yerelleştirmek RightToLeftRightToLeft.Yes için ayarlama | 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 TableLayoutPanel sola destek için denetimin içinde kullanın | Yes |
| 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 tarafından etkilemez | Denetimi yansıtıyor | Yes |
| 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ıyla 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; sol tarafta dikey kaydırma çubuğu görünür; yatay kaydırma çubuğu sağdan başlar | Alt TableLayoutPanel denetimlerin sıralamasını yansıtmak için kullanma | Hayır |
| Splitter | Desteklenmez | Etki yok | Hayır |
| StatusBar | Desteklenmiyor; bunun StatusStrip yerine kullanın | Hiçbir etkisi yoktur; bunun StatusStrip yerine kullanın | Hayır |
| TabControl | Bu özellikten etkilenmez | Denetimi yansıtıyor | Yes |
| TextBox | RTL okuma sırasıyla sağdan sola metin görüntüler | Etki yok | Hayır |
| Timer | Gerekli değil | Gerekli değil | Hayır |
| ToolBar | Bu özellikten etkilenmez; bunun ToolStrip yerine kullanın | Hiçbir etkisi yoktur; bunun ToolStrip yerine kullanın | Yes |
| ToolTip | RTL okuma sırası ayarlar | Etki yok | Hayır |
| TrackBar | Kaydırma veya izleme sağdan başlar; dikey Orientation olduğunda, tıklar sağdan oluşur | Etki yok | Hayır |
| TreeView | Yalnızca RTL okuma sırası ayarlar | Denetimi yansıtıyor | Yes |
| UserControl | Sol tarafta dikey kaydırma çubuğu görünür; yatay kaydırma çubuğunun sağda başparmak var | Doğrudan destek yoktur; bir kullanın TableLayoutPanel | Hayır |
| VScrollBar | Kaydırılabilir denetimlerin sağ tarafı yerine sol tarafta görüntülenir | Etki yok | Hayır |
Encoding
Windows Formlar Unicode'u destekler, bu nedenle çift yönlü uygulamalarınızı oluşturmada herhangi bir karakter kümesi dahil etmek için. Ancak, tüm Windows Forms denetimleri tüm platformlarda Unicode'u desteklemez.
GDI+
Metinleri GDI+ okuma sırasıyla çizmek için kullanabilirsiniz. Metin çizmek için kullanılan yöntemi, metnin çıkış noktasını ters çevirmek için numaralamanın üyesine ayarlandırarak bir DrawStringStringFormatDirectionRightToLeftStringFormatFlags parametreyi destekler.
Ortak İletişim Kutuları
Dosya Aç iletişim kutusu gibi sistem araçları, dosya Windows. Dil öğelerini işletim sisteminden devralabilir. Doğru dil ayarlarıyla Windows bir sürüm kullanıyorsanız, bu iletişim kutuları çift yönlü dillerle doğru şekilde çalışır.
Benzer şekilde, ileti kutuları işletim sisteminden geçerek çift yönlü metni destekler. İleti kutusu düğmeleri üzerindeki açıklamalı alt yazılar geçerli dil ayarını temel alır. Varsayılan olarak, ileti kutuları sağdan sola okuma sırası kullanmaz, ancak ileti kutuları görüntülendiğinde okuma sıralamalarını değiştirmek için bir parametre belirtebilirsiniz.
RightToLeft, Scrollbars ve ScrollableControl
Şu anda form formlarında Windows sınıfların her ikisi de etkinleştirildiğinde ve olarak ayarlanmış olduğunda düzgün davranmasını engelleyen ScrollableControlRightToLeft bir sınırlama AutoScrollYes vardır. Örneğin, form üzerinde gibi bir denetim veya 'den türetilen bir kapsayıcı sınıfı PanelPanel (veya FlowLayoutPanelTableLayoutPanel gibi) gibi bir denetime sahip olduğunu diyelim. Kapsayıcıda olarak ayarlanır ve ardından kapsayıcının içindeki denetimlerin bir veya daha fazlası için özelliğini olarak ayarlarsanız AutoScrollYes hiçbir kaydırma çubuğu AnchorRight görünür. sınıfından ScrollableControl türetilen sınıfı olarak ayarlanmış gibi AutoScrollNo davranır.
Şu anda tek geçici çözüm, başka bir içinde ScrollableControl iç içe ScrollableControl yerleştirmedir. Örneğin, bu durumda çalışmalısanız denetimin içine yer ve TableLayoutPanelPanel olarak AutoScrollPanelYes ayarlanmıştır.
Yansıtma
Yansıtma, kullanıcı arabirimi öğelerinin düzenini, sağdan sola doğru akacak şekilde ters çevirmeyi ifade eder. Yansıtılmış bir Windows Form'da, örneğin Simge durumuna Küçült, Ekranı Kapla ve Kapat düğmeleri başlık çubuğunda en sol tarafta görünür, en sağa değil.
Bir formun veya denetimin özelliğini bir formdaki öğelerin okuma düzenini tersine çeviren şekilde ayarlama, ancak bu ayar düzeni sağa sola doğru çevirmez; başka bir şekilde RightToLefttrue yansıtmaya neden olmaz. Örneğin, bu özelliğin ayarı 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 bazı denetimler, görüntülemelerini Arapça veya İbranice'ye uygun olacak şekilde değiştirmek TreeView için yansıtma gerektirir. Bu denetimleri özelliği ayarlarına göre RightToLeftLayout yansıtabilirsiniz.
Aşağıdaki denetimlerin yansıtılmış sürümlerini oluşturabilirsiniz:
Bazı denetimler korumalıdır. Bu nedenle, bunlardan yeni bir denetim türetmezsiniz. Bunlar ve ImageList denetimlerini ProgressBar içerir.