彩票走势图

logo DevExpress WinForm中文手册
文档彩票走势图>>DevExpress WinForm中文手册>>如何在从右向左区域性应用程序中启用RTL模式

如何在从右向左区域性应用程序中启用RTL模式


立即下载DevExpress WinForms

本主题展示如何在使用单个从右向左(RTL)区域性的应用程序中启用从右向左模式。

表单设置类:全局设置

WindowsFormsSettings类公开了静态属性,这些属性指定了所有DevExpress WinForms控件通用的各种全局设置,包括RTL设置。

我们建议您通过RightToLeft和RightToLeftLayout属性来启用RTL设置,但是如果应用程序没有本地化并且主要使用DevExpress控件,也可以使用和属性来支持从右到左的语言。这些全局设置只影响DevExpress表单和控件,并且优先于这些表单和控件公开的 RightToLeft/RightToLeftLayout 设置,在创建主应用程序表单之前设置 WindowsFormsSettings.RightToLeft和 WindowsFormsSettings.RightToLeftLayout 属性。如下面的代码片段所示:

C#:

using DevExpress.XtraEditors;
static class Program {
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main() {
WindowsFormsSettings.RightToLeft = DevExpress.Utils.DefaultBoolean.True;
WindowsFormsSettings.RightToLeftLayout = DevExpress.Utils.DefaultBoolean.True;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}

VB.NET:

Imports DevExpress.XtraEditors

Friend NotInheritable Class Program
Private Sub New()
End Sub
''' <summary>
''' The main entry point for the application.
''' </summary>
<STAThread> _
Shared Sub Main()
WindowsFormsSettings.RightToLeft = DevExpress.Utils.DefaultBoolean.True
WindowsFormsSettings.RightToLeftLayout = DevExpress.Utils.DefaultBoolean.True
Application.EnableVisualStyles()
Application.SetCompatibleTextRenderingDefault(False)
Application.Run(New Form1())
End Sub
End Class

提示:WindowsFormsSettings类公开的RTL全局设置对标准Forms和控件无效,如果您使用标准Forms和控件,则通过每个表单或控件的RightToLeft 和 RightToLeftLayout属性分别启用相应的RTL设置。

提示:当使用WindowsFormsSettings类的全局设置时,您不能在单个应用程序中同时支持 left-to-right和 right-to-left区域性,因为这些设置会导致所有DevExpress控件从 right-to-left显示,如果应用程序只支持从 right-to-left的语言,则使用这些全局设置。

提示:我们强烈建议您不要同时使用RTL和非RTL表单,然而如果您的应用程序具有RTL和非RTL表单,则不要使用全局设置启用RTL模式此时请使用表单的设置。

左右设置

从右到左的语言支持包括从右到左的视觉元素对齐,此功能可以通过将应用程序中所有表单的RightToLeft 属性设置为Yes来启用。

 当启用RTL模式时DevExpress控件布局会自动反转,下图显示了在默认和RTL模式下呈现的下拉按钮。

1

您可以在设计时或在代码中(在表单显示之前)为表单设置 RightToLeft属性,下面的代码片段展示了如何在XtraForm上启用 RightToLeft 设置。

C#:

public partial class Form1 : DevExpress.XtraEditors.XtraForm {
public Form1() {
InitializeComponent();
this.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
}
}

VB.NET:

Public Class Form1
Inherits DevExpress.XtraEditors.XtraForm

Public Sub New()

' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Me.RightToLeft = Windows.Forms.RightToLeft.Yes
End Sub
End Class

提示:所有控件都有一个 RightToLeft属性,此属性的默认值是Inherit,这意味着它从父控件(通常是表单)继承设置。当其他控件从左到右对齐时,在特定控件上启用 RightToLeft 并不是一个好的做法,因为这可能会导致布局问题,相反应该通过表单的RightToLeft 或 属性来启用从右到左的对齐方式(见下文)。

RightToLeftLayout设置

RightToLeftLayout属性也维护RTL模式,此属性由表单(标准表单、XtraForm、RibbonForm或TabForm)以及几个标准和DevExpress控件提供,RightToLeftLayout设置应用以下内容:

  • 反转表单的标准按钮(最小化、最大化和关闭)、系统菜单和标题(如果标题是左对齐的)的位置。
  • 反映了控件的布局形式。

提示:要使 RightToLeft设置生效,必须将RightToLeftLayout属性设置为Yes。

在设计时或在代码中(在表单显示之前)为表单设置RightToLeftLayout属性,下面的代码展示了如何为样例RibbonForm启用RightToLeft 和RightToLeftLayout 设置。

C#:

public partial class Form1 : DevExpress.XtraBars.Ribbon.RibbonForm {
public Form1() {
InitializeComponent();
this.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
this.RightToLeftLayout = true;
}
}

VB.NET:

Public Class Form1
Inherits DevExpress.XtraBars.Ribbon.RibbonForm

Public Sub New()

' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Me.RightToLeft = Windows.Forms.RightToLeft.Yes
Me.RightToLeftLayout = True
End Sub
End Class

提示:在运行时,对于已经显示的表单应该避免在运行时更改RightToLeft或RightToLeftLayout属性。

下图展示了以left-to-right和right-to-left的语言环境显示的样例RibbonForm,注意从右到左区域设置的控件布局是镜像的。

左
右

某些控件容器提供自己的RightToLeftLayout设置来激活可视化元素和子控件布局镜像,在大多数情况下,您需要启用这些设置才能正确支持RTL模式。如果控件容器(例如,标准的Windows表单面板)没有提供RightToLeftLayout设置,则根据目标区域性手动安排此容器中的子控件。

默认情况下,DevExpress容器控件在RTL模式下自动镜像它们的可视化元素和子控件的布局(当表单的 RightToLeft设置被启用并且RightToLeftLayout设置未被设置为False时)。如果一个DevExpress控制容器提供了它自己的RightToLeftLayout属性,您可以将这个属性设置为False来防止这个容器的自动布局镜像。以下控件容器提供了它们自己的RightToLeftLayout设置。

关于RTL,在表单中使用LayoutControl作为控件容器有几个优点,保持一致的布局并支持RTL模式,当表单(或LayoutControl)的RightToLeft 属性设置为Yes时,此模式将自动为LayoutControl激活。下图显示了在不同地区显示的样例LayoutControl。

DevExpress VCL图表控件

翻译DevExpress的预定义字符串

DevExpress控件和组件显示许多预定义的字符串常量(例如,列上下文菜单中的文本),默认情况下是英文的。您可能希望将这些内置字符串转换为自己的语言,这个机制在通过附属资源程序集本地化WinForms控件文档中有描述。

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

扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP