彩票走势图

logo DevExpress WinForm中文手册
文档彩票走势图>>DevExpress WinForm中文手册>>如何在多文化应用程序中为表单控件、字符串和图像启用RTL模式

如何在多文化应用程序中为表单控件、字符串和图像启用RTL模式


立即下载DevExpress WinForms

本文介绍如何本地化表单资源(文本和图像),并添加对多种语言的支持,包括使用从右向左书写系统的语言,它还展示了如何使用作为RTL-aware 表单中控件的容器。

假设以下UI需要支持RTL模式。

find

这是一个表单),包含一个XtraTabControl和一个选项卡页,这个标签页包含一个LayoutControl,其中包含和控件。

下图是本地化为Hebrew的表单并详细介绍了本地化表单的步骤。

表单

Visual Studio提供的Windows表单本地化机制可以帮助您添加对RTL模式的支持并本地化表单资源(文本和图像),此机制基于资源文件,资源文件被自动编译为包含区域性特定数据的附属程序集。

如何本地化表单并启用RTL模式

按照下面列出的步骤,在XtraForm、RibbonForm或TabForm中支持从右向左的语言。

1.在 Properties窗口中,将表单的Localizable属性设置为true。

窗口

2.从language属性下拉列表中选择所需的语言。

语言

选择所需语言后,可以指定与默认区域性不同的表单设置,与表单布局相对应的特定于语言的设置存储会在由Visual Studio自动创建的基于表单的资源文件中。您可以在Solution Explorer window窗口的表单文件下方找到此文件,通常文件名包含一个表示相应区域性的后缀。

3.将表单的 RightToLeft 属性设置为Yes,这将启用表单的RTL模式,默认情况下所有子控件都继承此设置。

3

4.将表单的RightToLeftLayout设置为true,反转(镜像)表单的控件布局,此选项仅在RightToLeft 属性设置为Yes时有效。

反转

表单的RightToLeftLayout属性不能被子控件容器继承,某些控件容器(例如,标准的Windows窗体TabControl)提供了自己的RightToLeftLayout属性,这些控制容器启用此属性。

提示:默认情况下,DevExpress 容器控件会自动镜像为 RTL 模式,一些容器控件(例如)提供自己DefaultBoolean类型的RightToLeftLayout属性,将此属性设置为 False 可防止此控件在 RTL 模式下自动布局镜像。

5.如果表单上存在不支持自动控件镜像的控件容器,则必须手动反转该容器中的控件布局。

例如,标准的Windows窗体面板不支持自动控制镜像,因此如果Panel包含OK或Cancel 按钮,则必须手动颠倒顺序。

默认模式下的面板示例:

默认

RTL模式下的面板示例:

RTL


请注意,虽然文本方向发生更改(冒号出现在从右到左定向字符串的末尾),但布局仍保持从左到右对齐,使用作为控件的容器可以解决此问题,当启用RTL模式时,LayoutControl会自动反转布局。

在默认模式下,将相同的UI放在LayoutControl中:

相同

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

ui

6.通过 Properties 窗口为所有表单控件设置自定义的本地化字符串和图像,这些值会自动保存到相应的基于表单的资源文件中。

text

要本地化消息框中的字符串,请使用项目资源文件 。

您可能还想将DevExpress控件和组件的嵌入文本(例如,GridControl的中的文本)本地化为自己的语言,这个机制在通过附属资源程序集本地化WinForms控件文档中有描述。

本主题中描述的方法利用来获取附属资源程序集,下载程序集时找到具有相应区域性缩写的文件夹(例如,他表示希伯来文化),并将其复制到应用程序的可执行文件目录中,不需要编写额外的代码,因为应用程序会自动确定当前区域性并在启动时加载适当的程序集。

在使用目标语言(Hebrew)的操作系统上显示表单后,RTL模式将启用,UI将自动翻译,可以通过在应用程序启动时显式指定UI区域性来检查结果,如下面的代码片段所示:

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