DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress 今年第一个重要版本v23.1正式发布,该版本拥有众多新产品和数十个具有高影响力的功能,可为桌面、Web和移动应用提供直观的解决方案,全面解决各种使用场景问题。
DevExpress官方已于近期正式发布v23.2,此版本包含全新升级的UI本地化、支持NuGet v3等,欢迎下载最新版产品体验!
DevExpress技术交流群9:909157416 欢迎一起进群讨论
UI本地化
新的本地化API
在v23.2中,官方技术团队为所有依赖于标准RESX本地化机制的DevExpress .NET产品简化了以下与本地化相关的任务:
- 识别应用程序中特定使用的本地化字符串。
- 根据应用程序区域性查找未翻译的字符串。
- 将修改保存到RESX文件中,并将其用作本地化字符串的附加源。
您下载可以在DevExpress驱动的.NET应用(WinForms、WPF、ASP. NET WebForms、MVC、Blazor、Reporting、BI Dashboards和XAF UI)中识别和本地化非翻译字符串。
本地化API包括XtraLocalizer类中的以下新事件和属性:
- QueryLocalizedStringContainerResource — 允许您为作为DevExpress发行版一部分的数据表单和对话框本地化资源,很难确定和更改自定义表单中包含的所有本地化字符串(因为这些表单不存在单独的本地化器)。
- QueryLocalizedStringNonTranslated — 该事件允许您专注于应用程序中需要翻译的资源,处理此事件来收集非本地化的资源字符串以供进一步翻译。我们的默认翻译是社区来源的,所以它们不是100%覆盖(即使是德语,西班牙语或法语),有些也可能需要更正(同样是由于社区来源的来源)。
- QueryLocalizedString — 该事件允许您为应用程序中的所有DevExpress UI控件本地化资源。当控件请求资源字符串并允许您根据需要翻译或修改它时,该事件将被触发(我们使用有用的事件参数扩展了该事件,例如istransated、Value、StringIDType和许多其他参数)。
- UserResourceManager — 该属性允许您设置自定义资源管理器,该管理器可以将自定义RESX文件集成到应用程序中进行本地化。这个API提供了最高级别的控制,是调用层次结构中的最高层。
用户界面本地化客户端 - 识别非翻译资源
新版本实现了一个新的UI本地化客户端工具(一个VSIX扩展),这是一个跨平台实用程序,允许您快速识别DevExpress UI控件的未翻译字符串并翻译它们。该工具会自动生成一个带有翻译资源的RESX文件,并将其添加到项目中。您可以在"Extensions > DevExpress > All Platforms"菜单下调用这个工具。
支持NuGet v3
现在默认使用NuGet v3 (nuget.devexpress.com)是一种更快、更安全的方式,可以从IDE或CI/CD工具访问DevExpress NuGet包,NuGet v2将继续得到支持。
根据授权参数 ,请考虑以下选项:
- Feed URL授权:https://nuget.devexpress.com/{your-feed-authorization-key}/api/v3/index.json - 您可以从DevExpress NuGet Gallery复制{your-feed-authorization-key}部分。
- 基于用户名/密码的授权:https://nuget.devexpress.com/api/v3/index.json - 使用“DevExpress”作为用户名,并使用提要授权密钥作为密码。
WinForms & WPF
新版本引入了一个新的剪贴板访问策略,允许您控制(允许或不允许)用户在Windows Forms 和 WPF应用程序(包括报表和BI仪表板)中使用DevExpress UI控件时发起的剪贴板相关操作。
在应用程序启动时使用以下方法应用预定义的限制:
您还可以根据需要处理以下事件来配置策略:
下面的示例允许用户将ANSI文本格式的数据从剪贴板粘贴到DevExpress UI控件中,如果用户以不同的格式粘贴数据,则从剪贴板粘贴操作将被取消:
C#
using System;
using System.Windows.Forms;
using DevExpress.Data.Utils;
namespace DXApplication {
internal static class Program {
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
ClipboardAccessPolicy.SuppressCopyOperations();
ClipboardAccessPolicy.Pasting += ClipboardAccessPolicy_Pasting;
Application.Run(new Form1());
}
private static void ClipboardAccessPolicy_Pasting(object sender, ClipboardAccessPolicy.ClipboardOperationRequestEventArgs e) {
if (e.DataFormat == DataFormats.Text)
e.Cancel = false;
}
}
}
更多DevExpress线上公开课、中文教程资讯请上中文网获取
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/4304.html