• <menu id="w2i4a"></menu>
  • logo DevExpress WinForm中文手冊(cè)

    文檔首頁>>DevExpress WinForm中文手冊(cè)>>如何在多文化應(yīng)用程序中為表單控件、字符串和圖像啟用RTL模式

    如何在多文化應(yīng)用程序中為表單控件、字符串和圖像啟用RTL模式


    立即下載DevExpress WinForms

    本文介紹如何本地化表單資源(文本和圖像),并添加對(duì)多種語言的支持,包括使用從右向左書寫系統(tǒng)的語言,它還展示了如何使用LayoutControl作為RTL-aware 表單中控件的容器。

    假設(shè)以下UI需要支持RTL模式。

    find

    這是一個(gè)表單(XtraForm),包含一個(gè)XtraTabControl和一個(gè)選項(xiàng)卡頁,這個(gè)標(biāo)簽頁包含一個(gè)LayoutControl,其中包含TextEditSimpleButton控件。

    下圖是本地化為Hebrew的表單并詳細(xì)介紹了本地化表單的步驟。

    表單

    Visual Studio提供的Windows表單本地化機(jī)制可以幫助您添加對(duì)RTL模式的支持并本地化表單資源(文本和圖像),此機(jī)制基于資源文件,資源文件被自動(dòng)編譯為包含區(qū)域性特定數(shù)據(jù)的附屬程序集。

    如何本地化表單并啟用RTL模式

    按照下面列出的步驟,在XtraForm、RibbonForm或TabForm中支持從右向左的語言。

    1.在 Properties窗口中,將表單的Localizable屬性設(shè)置為true。

    窗口

    2.從language屬性下拉列表中選擇所需的語言。

    語言

    選擇所需語言后,可以指定與默認(rèn)區(qū)域性不同的表單設(shè)置,與表單布局相對(duì)應(yīng)的特定于語言的設(shè)置存儲(chǔ)會(huì)在由Visual Studio自動(dòng)創(chuàng)建的基于表單的資源文件中。您可以在Solution Explorer window窗口的表單文件下方找到此文件,通常文件名包含一個(gè)表示相應(yīng)區(qū)域性的后綴。

    3.將表單的 RightToLeft 屬性設(shè)置為Yes,這將啟用表單的RTL模式,默認(rèn)情況下所有子控件都繼承此設(shè)置。

    3

    4.將表單的RightToLeftLayout設(shè)置為true,反轉(zhuǎn)(鏡像)表單的控件布局,此選項(xiàng)僅在RightToLeft 屬性設(shè)置為Yes時(shí)有效。

    反轉(zhuǎn)

    表單的RightToLeftLayout屬性不能被子控件容器繼承,某些控件容器(例如,標(biāo)準(zhǔn)的Windows窗體TabControl)提供了自己的RightToLeftLayout屬性,這些控制容器啟用此屬性。

    提示:默認(rèn)情況下,DevExpress 容器控件會(huì)自動(dòng)鏡像為 RTL 模式,一些容器控件(例如Xtra Tab Control )提供自己DefaultBoolean類型的RightToLeftLayout屬性,將此屬性設(shè)置為 False 可防止此控件在 RTL 模式下自動(dòng)布局鏡像。

    5.如果表單上存在不支持自動(dòng)控件鏡像的控件容器,則必須手動(dòng)反轉(zhuǎn)該容器中的控件布局。

    例如,標(biāo)準(zhǔn)的Windows窗體面板不支持自動(dòng)控制鏡像,因此如果Panel包含OK或Cancel 按鈕,則必須手動(dòng)顛倒順序。

    默認(rèn)模式下的面板示例:

    默認(rèn)

    RTL模式下的面板示例:

    RTL


    請(qǐng)注意,雖然文本方向發(fā)生更改(冒號(hào)出現(xiàn)在從右到左定向字符串的末尾),但布局仍保持從左到右對(duì)齊,使用LayoutControl作為控件的容器可以解決此問題,當(dāng)啟用RTL模式時(shí),LayoutControl會(huì)自動(dòng)反轉(zhuǎn)布局。

    在默認(rèn)模式下,將相同的UI放在LayoutControl中:

    相同

    在RTL模式下將相同的UI放在LayoutControl中:

    ui

    6.通過 Properties 窗口為所有表單控件設(shè)置自定義的本地化字符串和圖像,這些值會(huì)自動(dòng)保存到相應(yīng)的基于表單的資源文件中。

    text

    要本地化消息框中的字符串,請(qǐng)使用項(xiàng)目資源文件 。

    您可能還想將DevExpress控件和組件的嵌入文本(例如,GridControl的列上下文菜單中的文本)本地化為自己的語言,這個(gè)機(jī)制在通過附屬資源程序集本地化WinForms控件文檔中有描述。

    本主題中描述的方法利用本地化服務(wù)來獲取附屬資源程序集,下載程序集時(shí)找到具有相應(yīng)區(qū)域性縮寫的文件夾(例如,他表示希伯來文化),并將其復(fù)制到應(yīng)用程序的可執(zhí)行文件目錄中,不需要編寫額外的代碼,因?yàn)閼?yīng)用程序會(huì)自動(dòng)確定當(dāng)前區(qū)域性并在啟動(dòng)時(shí)加載適當(dāng)?shù)某绦蚣?

    在使用目標(biāo)語言(Hebrew)的操作系統(tǒng)上顯示表單后,RTL模式將啟用,UI將自動(dòng)翻譯,可以通過在應(yīng)用程序啟動(dòng)時(shí)顯式指定UI區(qū)域性來檢查結(jié)果,如下面的代碼片段所示:

    C#:

    using System.Globalization;
    using System.Threading;
    
    Thread.CurrentThread.CurrentCulture = new CultureInfo("he");
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("he");

    VB.NET:

    Imports System.Globalization
    Imports System.Threading
    
    Thread.CurrentThread.CurrentCulture = New CultureInfo("he")
    Thread.CurrentThread.CurrentUICulture = New CultureInfo("he")
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();