在WPF 用。net资源做多语言话的话,如果不要求动态切换可以在Xaml里直接使用Resource,在使用之前设置一下CultureInfo就可以了
如:
public MainWindow()
{
Res.Culture = CultureInfo.GetCultureInfo("en-US");
InitializeComponent();
}
如果要动态切换的话可以使用扩展标记:
public class LanguageUtils : MarkupExtension,INotifyPropertyChanged
{
private static ResourceManager manager = Res.ResourceManager;
private static EventHandler<EventArgs> LanguageChangeEvent;
public static void SetLanguage(string culture)
{
Res.Culture =new CultureInfo(culture);
if (LanguageChangeEvent != null)
LanguageChangeEvent(null, null);
}
static LanguageUtils()
{
// Res.Culture = new CultureInfo("en-US");
}
public LanguageUtils()
{
LanguageChangeEvent += LanguageChanged;
}
private void LanguageChanged(object sender, EventArgs e)
{
RaisePropertyChanged();
}
public string Key
{
get;
set;
}
public string Value
{
get
{
return manager.GetString(Key, Res.Culture);
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged()
{
if(PropertyChanged!=null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Value"));
}
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
IProvideValueTarget target = serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget;
FrameworkElement elm = target.TargetObject as FrameworkElement;
Binding binding = new Binding("Value")
{
Source = this,
Mode = BindingMode.OneWay
};
object obj = binding.ProvideValue(serviceProvider);
return obj;
}
}
在xaml里:
<Button Content="{local:LanguageUtils Key=String1}" HorizontalAlignment="Left" Margin="183,132,0,0" VerticalAlignment="Top" Width="212" Click="Button_Click"/>
切换事件:
private void Button_Click(object sender, RoutedEventArgs e)
{
if(Res.Culture.Name=="zh-CN")
LanguageUtils.SetLanguage("en-US");
else
LanguageUtils.SetLanguage("zh-CN");
}
最新文章
政策新闻 | 淮北市住建局承接安徽省住建厅委托建筑业企业资质行政审批公告(淮建资许〔2025〕60号) 政策新闻 | 临海市灰坑村传统村落保护项目设计方案通过专家评审 政策新闻 | 安居区会龙镇扎实开展农村房屋安全隐患排查整治 政策新闻 | 关于发布“运河区文安和韵小区前期物业服务项目变更公告”的公示公告 政策新闻 | 锦州市委常委会召开会议 政策新闻 | 《加快推动建筑领域节能降碳实施方案》解读 政策新闻 | 马鞍山地下管线综合管理信息系统(二期)初步设计报告编制项目中标(成交)结果公告 政策新闻 | 住房城乡建设部办公厅关于印发《房屋市政工程有限空间识别及施工安全作业 指南(试行)》的通知 政策新闻 | 广西住建厅关于公布2025年第29批建筑业企业资质(首次申请)审查结果的通告 政策新闻 | 呼伦贝尔市稳步推进农村牧区危房改造工作