为什么我所有的资源文件都包含TrayLocation?这是sisulizer的错吗?

本文关键字:这是 TrayLocation sisulizer 包含 资源 源文件 为什么 | 更新日期: 2023-09-27 17:53:33

在我们的c# WinForms应用程序中,我们遇到了一些本地化问题:我们的大量.resx文件似乎有一个"control"条目。TrayLocation",用一个值指定点的位置(例如17,58)。这是非常不寻常的,因为通常这类属性会以'>>'开头的名称添加到资源文件中,以表明它们是表单属性。

这可能与我们使用Sisulizer进行翻译有关,因为它可能在.resx文件中添加了一个属性,但很难确定这是否是原因。

有没有人在WinForms和Sisulizer中遇到过同样的问题

为什么我所有的资源文件都包含TrayLocation?这是sisulizer的错吗?

两周前我注意到了同样的问题,并向Sisulizer报告了这个问题。他们修复了这个问题,当使用最新版本(361)Sisulizer不再添加这些>>xxxx资源项目。

注意:为了充分披露,我是TranSolution的作者,这是一个面向Visual Studio开发者的本地化程序(因此是Sisulizer的竞争对手)。这并不一定是Sisulizer添加的东西(尽管有可能)。当您创建托盘控件时,MSFT会自行添加此属性,托盘控件只是出现在Visual Studio窗体设计器底部的"托盘"区域中的非可视控件。它通常不是"System.Windows.Forms"。控件的派生,即GUI控件。它是与表单或用户控件相关联的其他非可视控件,例如"System.Data"。数据集"(因此不是最终用户实际看到的内容的一部分)。例如,在窗体设计器中,尝试将"工具箱"中的"数据集"拖到窗体上。它将出现在设计器窗口底部的区域("tray"区域),因此"TrayLocation"属性会显示它在该区域中的位置。你甚至会注意到"。Resx "文件说明此属性是一个"元数据"元素,而不是"数据"元素(像". rex "中的大多数其他元素一样)。"resx文件)。在这种情况下,"元数据"通常指的是通常不与控件关联的附加属性(附加属性可以动态地添加到任何. net对象中,但这是一个很长的故事)。这些特殊的属性通常是由Visual Studio自己使用的,所以你不会在MSDN中找到它们作为实际控件的一部分。顺便说一句,你提到的">>"实际上指定了与表单或用户控件相关的4个特殊MSFT属性之一,即:

>> ControlName。名称

>> ControlName。类型

>> ControlName。父母

>> ControlName。ZOrder

这些与托盘控件无关(它们通常只出现在表单或用户控件中)。事实上,微软甚至没有正式的文档记录(上次我检查的时候),尽管你可以找到很多基于表单的文档。"Resx"文件没有记录。你可以在这里找到这些属性的准官方解释https://blogs.msdn.microsoft.com/rprabhu/2003/08/21/winres/(来自微软表单团队的一个人)。

最后,请注意,在第三方本地化程序中处理这些属性和其他情况可能并不总是正确的,这取决于程序。我不能说Sisulizer正在做什么(大概他们正在为你正确地处理事情),但从我自己的经验来看,我曾经花了很多工作来追踪这一点(再一次,因为很多事情都是基于形式的)。