C# 从设计模式本地化Winforms?

C# 从设计模式本地化Winforms?,c#,winforms,localization,C#,Winforms,Localization,我需要在设计模式中将toolstrip中的标签或项目绑定到变量。 我不使用内置资源,也不使用设置,因此节数据没有用处。我从映射到类的XML中取出值 我知道有很多项目,比如: 但是它们使用编译的resx。我想使用未编译的XML 我知道通过编程我可以做到这一点,我创建了一个方法(例如UpdateUI()),然后在那里我像这样分配新值: this.tsBtn.Text=Class.Text.tsBtnText 我希望我可以从设计模式或比目前更优化的方式做一些事情。是否有任何自定义控件或扩展?尝试继承基

我需要在设计模式中将toolstrip中的标签或项目绑定到变量。 我不使用内置资源,也不使用设置,因此节数据没有用处。我从映射到类的XML中取出值

我知道有很多项目,比如: 但是它们使用编译的resx。我想使用未编译的XML

我知道通过编程我可以做到这一点,我创建了一个方法(例如UpdateUI()),然后在那里我像这样分配新值: this.tsBtn.Text=Class.Text.tsBtnText


我希望我可以从设计模式或比目前更优化的方式做一些事情。是否有任何自定义控件或扩展?

尝试继承基本win控件并覆盖OnPaint方法。下面的示例是一个按钮,根据其标记属性中包含的值将其文本设置在绘图上(假设您将使用标记属性设置用于读取匹配资源的键)。然后,您可以找到从xml文件(例如虚构的MyGlobalResources类)读取所有缓存资源字符串的方法

public class LocalizedButton : Button
{
    protected override void OnPaint(PaintEventArgs pevent)
    {
        base.OnPaint(pevent);
        this.Text = MyGlobalResources.GetItem(this.Tag.ToString());
    }
}

Aleksandar的回答是实现这一点的一种方法,但从长远来看,这将非常耗时,不会带来太多好处。应该问的更大的问题是,为什么您不想使用.NET和Visual Studio内置的工具和功能,或者至少不想使用商业第三方工具?听起来您好像是这样的e花费(已花费?)大量时间来解决已解决的问题。

您可以使用附属程序集进行本地化,并使用XML文件作为转换实体的源来生成它们。 更多关于卫星的信息


当然这不是设计模式,但受您的限制,没有办法这样做。

问题是我不希望编程人员能够翻译我从XML中使用的文本。我将XML放在web中,他们可以通过翻译直接将其传递到web,而无需编译您仍然可以使用的任何内容内置的.NET功能,只需要一个像样的翻译友好的RESX编辑器,比如开源编辑器。我以前没有用过它,所以不能保证它的质量和实用性。