c# - 本地化后重置控制位置

标签 c# winforms localization

我有一个基本语言为英语的 WinForms 应用程序。我将表格本地化为德语。德语中的一些单词比对应的英语单词长得多,因此我需要在德语版本的表单上移动一些控件。问题是当我移动英语控件时,德语本地化并没有反射(reflect)出移动(很明显)。

然而,一些控件被错误地移动了,我想重新设置它们,所以它们在英语表单上的移动也会反射(reflect)在德语表单上。

如何重置德语窗体上单个控件的位置和大小(或所有属性),以便该控件在英语窗体上移动时会在窗体的两种语言版本上移动?除了挖掘本地化的 .resx 文件并删除控件的所有属性分配之外,还有其他方法吗?

最佳答案

我是面向 Visual Studio 开发人员的本地化产品的作者(为了全面披露)。您从本地化“.resx”文件中删除的任何属性,无论是在 Visual Studio 窗体设计器中还是在“.resx”文件本身中手动删除,都会导致控件再次遵从该属性的默认语言值。但是,没有处理此问题的特定功能。您需要逐个控制自己进行操作。但是请注意,对于这个问题和其他问题,Visual Studio 有时会不稳定,并且存在各种错误,因此即使您确实使用设计器删除它们,事情也并不总是有效(上次我回顾了这种情况)。除非现在已经修复(我对此表示怀疑),否则如果您将德语控件的“Location”属性设置回默认语言的“Location”属性(例如在设计器中),VS 应该从中删除“Location”属性“.de.resx”文件。它确实 - 有时。其他时候它没有(去图),你需要自己手动删除它。一旦它消失了,“回退”过程确保将再次使用默认语言属性(因此在您的情况下将控件移动到英语版本将其移动到德语版本,因为两者都再次依赖相同的属性- 来自英文“.resx”文件的那个)。

关于c# - 本地化后重置控制位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14395592/

相关文章:

c# - 增强本地化性能? (ComponentResourceManager.ApplyResources)

swift - 本地化字符串比较

C# 异常用户未处理

c# - DirectoryNotFoundException C# 将 XML 文件加载到控制台应用程序时出错

c# - 能够通过 Tag 属性查找 WinForm 控件

c# - 在 Windows 窗体中获取 TableLayoutPanel 单元格的高度和宽度

ios - 跨多个目标本地化 iOS 应用程序

c# - WinForms 自定义 3 纽扣单元

c# - EF : The property 'Street' is not a declared property on type 'Address'

c# - 如何使用 GetFolderPath 获取自定义文件夹路径?