wpf 多语言对应 切换了 dll后 如何刷新窗体(window)

Python012

wpf 多语言对应 切换了 dll后 如何刷新窗体(window),第1张

百度搜索 "C# 国际化 动态切换"

我主要讲几种比较通用的实现方式:

使用XAML动态绑定的方法

百度搜索  "WPF实现无刷新动态切换多语言(国际化)"  这篇文章中讲的,语言使用xaml文件,不使用自带的Resources。通过DynamicResource 动态绑定。在后台代码通过修改ResourceDictionary.MergedDictionaries来动态切换语言。

2.重新加载窗体的方法

百度搜索 “C#中 动态切换当前界面的语言”这篇文章中讲的,清除页面所有控件,然后修改当前进程语言,然后调用InitializeComponent()方法重新初始化页面。不过这篇文章讲的是Winform,理论上我认为WPF也可以用,题主可以一试。

这个问题我之前也遇到过,我采用的是方法1,我一直认为C#默认的语言文件编译成单独的dll并且每种语言的dll占用一个文件夹的方式很不好,目录结构显的很乱。

我理想的方式是有一个专门的L18n或者locales文件夹放每种语言的语言包,目前大部分软件也都是这样搞。

最好是语言包是我们可以直接编辑或者解压之后可编辑的,这样修改添加语言文件就不需要重新编译软件了。

是微软公司下的一个跨语言平台。语言可以是C#,PowerShell,VB等。各语言之间运行时可以无缝衔接,前提是遵守公共语言规范 ( Common Language Specification ,简称CLS )

.NET Framework 是 Windows 的托管执行 环境 ,可为其运行的应用提供各种服务。 它包括两个主要组件

.NET Core 是一个开源的模块化的Framework,不管是开发web或移动设备都在同一个Framework(.NET Core)下运行,而且 .NET Core也可在不同的操作系统上运行,包括Windows、linux、MacOS,实现了跨平台跨设备。

方法1 : 新建项目,选择为 .NET Core 。

方法2 :

1.右键项目,选择“卸载”

2.右键编辑项目.csproj文件,清空并寻找一个 .NET Core 项目的.csproj,复制进来。例:

3.删除项目中的"Properties"文件夹和文件

4.重新加载项目

5.生成项目根据错误信息重新引用依赖项

是运行在.net CLR上的,用于创建应用程序的高级语言。

C# 中的关键组织结构概念包括 程序 、 命名空间 、 类型 、 成员 和 程序集 。 C# 程序 由一个或多个源文件组成。 程序 声明 类型 ,而 类型 包含 成员 ,并被整理到 命名空间 中。 类型 包括 类 和 接口 。 成员 包括 字段 、 方法 、 属性 和 事件 。 编译完的 C# 程序实际上会打包到程序集中。 程序集的文件扩展名通常为 .exe 或 .dll ,具体取决于实现的是应用程序还是库。

.NET Core 的控制台应用默认是生成 dll 文件,而没有对应的 exe 文件。其中包含一个 dll 文件,要执行该文件需要用命令行来执行(包括在非windows环境下):

要生成 exe 文件则需要在项目文件路径下执行指令:

则在 .dll 文件同目录下会出现生成的文件包。

所引用的项目也会一起打包进来。

build 时会隐式调用 restore 来还原包,并选择最新的程序版本,发布的时候命令 restore 被隐式调用使用最新的版本,和实际的发布版本不一致就会报错。设置 TargetLatestRuntimePatch 为 true 可以避免在 restore

选择发布,

首先,.NET是微软开发的一个软件开发平台,而C#只是基于.NET平台的一种软件开发语言,wpf是一种技术,也就是用更加漂亮的界面或者方式展现开发语言。.net是平台 C#是语言 wdf是技术