- 浏览: 646904 次
- 性别:
- 来自: 石家庄
文章分类
最新评论
-
abao1:
老贾 在安装IDEA的过程中,在激活步骤时,按如下操作即可: ...
IntelliJ IDEA 2016注册方法和注册码 -
bo_hai:
./usr/bin/java: symbol lookup ...
jmagick安装步骤 -
wxcking:
不错的, 收藏一下
JAVA使用POI生成Excel文件 -
zgyfh:
大哥,密码是多少啊?zgyfh@tom.com谢谢了!新手学习 ...
WPF做的必备示例 -
记忆无泪:
jiasongmao 写道你的邮箱是多少,我可以发源代码到邮箱 ...
WPF做的必备示例
当您将自己的产品限制为只能通过一种语言使用时,您便将潜在的客户群限制为全球 65 亿人口中的一小部分。 如果您想让自己的应用程序被全球用户所接受,那么对产品进行经济而有效的本地化将是赢得更多客户的最好、最经济的方法。
本概述介绍 Windows Presentation Foundation (WPF) 中的全球化和本地化。 全球化是指设计和开发在多个地点执行的应用程序。 例如,全球化支持适用于不同区域性用户的本地化用户界面和区域数据。 WPF 提供全球化设计功能,包括自动布局、附属程序集以及本地化特性和注释。
本地化是针对应用程序所支持的特定区域性将应用程序资源转换为本地化版本的过程。 在 WPF 中进行本地化时,要使用 System.Windows.Markup.Localizer 命名空间中的 API。 这些 API 实现 LocBaml Tool Sample (LocBaml 工具示例)命令行工具。 有关如何生成和使用 LocBaml 的信息,请参见如何:对应用程序进行本地化 。
本主题包括下列各节。
- 在 WPF 中进行全球化和本地化的最佳做法
- 对 WPF 应用程序进行本地化
- WPF 本地化示例
按照本节提供的与 UI 设计和本地化相关的提示操作,可以最大限度地利用 WPF 中内置的大部分全球化和本地化功能。
WPF UI 设计的最佳做法
当您设计基于 WPF 的 UI 时,请考虑实施下列最佳做法:
-
用 XAML 编写 UI;避免在代码中创建 UI。 当您使用 XAML 创建 UI 时,应通过内置的本地化 API 来对其进行公开。
-
避免使用绝对位置和固定大小来对内容进行布局;相反,应使用相对位置或自动大小调整。
-
使用 SizeToContent ;并将宽度和高度设置为 Auto 。
-
避免使用 Canvas 对 UI 进行布局。
-
使用 Grid 及其大小共享功能。
-
-
在边距中提供额外的空间,因为本地化文本通常需要更多的空间。 额外空间为可能会延伸的字符预留了余地。
-
启用 TextBlock 上的 TextWrapping 以避免剪裁。
-
设置 xml:lang 特性。 此特性描述特定元素及其子元素的区域性。 此属性的值可更改 WPF 中几种功能的行为。 例如,它可以更改断字、拼写检查、数字替换、复杂字符造型和字体回退的行为。 有关设置 XAML 中 xml:lang 的处理 的更多信息,请参见 WPF 的全球化 。
-
创建自定义的复合字体,以更好地控制用于不同语言的字体。 默认情况下,WPF 使用“Windows\Fonts”目录中的 GlobalUserInterface.composite 字体。
-
当您创建的导航应用程序可能在以从右到左的格式显示文本的区域性中进行本地化时,请显式设置每个页的 FlowDirection 以确保该页不从 NavigationWindow 继承 FlowDirection 。
-
当您创建在浏览器之外承载的独立导航应用程序时,请将初始应用程序的 StartupUri 设置为 NavigationWindow 而不是页面(例如,<Application StartupUri="NavigationWindow.xaml"> )。 此设计使您可以更改窗口和导航栏的 FlowDirection 。 有关更多信息和示例,请参见 Globalization Homepage Sample (全球化主页示例)。
WPF 本地化的最佳做法
当您对基于 WPF 的应用程序进行本地化时,请考虑实施下列最佳做法:
-
使用本地化注释为本地化人员提供额外的上下文。
-
使用 msbuild /t:updateuid 和 /t:checkuid 在 XAML 中添加和检查 Uid 属性。 使用 Uid 属性跟踪开发和本地化之间的更改。Uid 属性可以帮助您对新的开发更改进行本地化。 如果将 Uid 属性手动添加到 UI,则任务通常会比较繁重并且缺乏准确性。
-
开始进行本地化之后,请不要编辑或更改 Uid 属性。
-
不要使用重复的 Uid 属性(当您使用“复制并粘贴”命令时,请记住此提示)。
-
在 AssemblyInfo.* 中设置 UltimateResourceFallback 位置以指定合适的回退语言(例如,[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] )。
如果您决定通过在项目文件中省略 <UICulture> 标记来在主程序集中包括源语言,请将 UltimateResourceFallback 位置设置为主程序集而不是附属程序集(例如,[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.MainAssembly)] )。
-
当您对 WPF 应用程序进行本地化时,有多种选择。 例如,您可以将应用程序中的可本地化资源绑定到 XML 文件,在 resx 表中存储可本地化的文本,或者让本地化人员使用 可扩展应用程序标记语言 (XAML) 文件。 本节介绍使用二进制 XAML (BAML) 的本地化工作流,该工作流有以下几个好处:
-
可以在生成之后进行本地化。
-
可以通过本地化从较低版本的 BAML 更新到更高版本的 BAML,以便在开发的同时进行本地化。
-
因为 BAML 是 XAML 的已编译形式,所以可以在编译时验证原始源元素和语义。
本地化生成过程
开发 WPF 应用程序时,本地化的生成过程如下:
-
开发人员创建并全球化 WPF 应用程序。 在项目文件中,开发人员设置 <UICulture>en-US</UICulture> ,以便在编译该应用程序时,会生成非特定语言的主程序集。 此程序集具有一个附属 .resources.dll 文件,其中包含所有可本地化的资源。 因为本地化 API 支持从主程序集进行提取,所以可以选择保留主程序集中的源语言。
-
在将文件编译到生成中时,会将 XAML 转换为 BAML。 非特定区域性的 MyDialog.exe 和区域相关的(英语)MyDialog.resources.dll 文件将发布到说英语的客户手中。
本地化工作流
在生成未本地化的 MyDialog.resources.dll 文件之后,本地化过程便开始了。 使用 System.Windows.Markup.Localizer 下的 API 将原始 XAML 中的 UI 元素和属性从 BAML 提取为键/值对。 本地化人员使用键/值对来对应用程序进行本地化。 在本地化完成之后,您可以从新值生成一个新的 .resource.dll。
键/值对的键是开发人员放置在原始 XAML 中的 x:Uid 值。 API 可以使用这些 x:Uid 值来跟踪和合并在本地化过程中发生在开发人员与本地化人员之间的更改。 例如,如果在本地化人员开始进行本地化之后,开发人员更改了 UI,则您可以将开发更改与已经完成的本地化工作进行合并,以便使损失的翻译工作达到最少。
下图显示了一个基于 BAML 的典型本地化工作流。 此关系图假设开发人员用英语编写应用程序。 开发人员创建 WPF 应用程序并将其全球化。 在项目文件中,开发人员设置 <UICulture>en-US</UICulture> ,以便在生成时会生成一个非特定语言的主程序集,并使该程序集具有一个包含所有可本地化资源的附属 .resources.dll。 或者,因为 WPF 本地化 API 支持从主程序集进行提取,所以还可以保留主程序集中的源语言。 生成过程结束之后,XAML 会被编译为 BAML。 非特定区域性的 MyDialog.exe.resources.dll 将被发布到说英语的客户手中。
本节包含几个本地化应用程序示例,以帮助您了解如何生成和本地化 WPF 应用程序。
“运行”对话框示例
下图显示“运行” 对话框示例的输出。
英语:
德语:
设计一个全球化“运行”对话框
此示例使用 WPF 和 XAML 生成一个“运行” 对话框。 此对话框与 Microsoft Windows“开始”菜单中包含的“运行” 对话框等效。
生成全球化对话框的一些要点包括:
Automatic Layout
在 Window1.xaml 中:
<Window SizeToContent="WidthAndHeight">
以前的 Window 属性会根据内容的大小自动调整窗口的大小。 此属性可以防止窗口切断在本地化之后增加大小的内容;它还可以在内容由于本地化而减小大小时移除不必要的空格。
<Grid x:Uid="Grid_1">
为了使 WPF 本地化 API 可以正确运行,需要使用 Uid 属性。
WPF 本地化 API 使用这些属性来跟踪用户界面 (UI) 的开发和本地化之间的更改。 Uid 属性使您可以将 UI 的较新版本与 UI 的较早本地化合并起来。 通过在命令 shell 中运行 msbuild /t:updateuid RunDialog.csproj ,可以添加 Uid 属性。 因为手动添加 Uid 属性通常比较费时并且准确性较差,所以建议使用此方法来添加这些属性。 可以通过运行 msbuild /t:checkuid RunDialog.csproj 来检查是否正确设置了 Uid 属性。
使用 Grid 控件可以构造 UI,该控件对利用 WPF 中的自动布局很有用处。 请注意,对话框被拆分成三行五列。 没有一个行和列定义具有固定大小;因此,位于每个单元格中的 UI 元素能够在本地化过程中适应大小的增加和减小。
<Grid.ColumnDefinitions> <ColumnDefinition x:Uid="ColumnDefinition_1" /> <ColumnDefinition x:Uid="ColumnDefinition_2" />
放置“Open:”(打开) 标签和 ComboBox 的前两列占了 UI 总宽度的 10%。
<ColumnDefinition x:Uid="ColumnDefinition_3" SharedSizeGroup="Buttons" /> <ColumnDefinition x:Uid="ColumnDefinition_4" SharedSizeGroup="Buttons" /> <ColumnDefinition x:Uid="ColumnDefinition_5" SharedSizeGroup="Buttons" /> </Grid.ColumnDefinitions>
请注意,此示例使用了 Grid 的共享大小调整功能。 最后三列通过将自身放置在相同的 SharedSizeGroup 中利用此功能。 正如您可以从属性的名称中看出的那样,此属性使不同的列可以采用相同的大小。 因此,在将“Browse…”本地化为更长的字符串“Durchsuchen…”时,所有按钮的宽度都会增加,而不是显示一个小的“OK”按钮和一个大得不相称的“Durchsuchen…”按钮。
Xml:lang
Xml:lang="en-US"
请注意放置在 UI 的根元素中的 XAML 中 xml:lang 的处理 。 此属性描述给定元素及其子元素的区域性。 WPF 中的多项功能都使用此值,在本地化过程中应对此值进行相应的更改。 此值会更改在断字以及对字词进行拼写检查时所使用的字典。 它还会影响数字的显示以及字体回退系统选择所用字体的方式。 最后,该属性会影响数值的显示方式以及用复杂字母书写的文本的造型方式。 默认值为“en-US”。
Building a Satellite Resource Assembly
在 .csproj 中:
<UICulture>en-US</UICulture>
请注意,增加了 UICulture 值。 如果将此属性设置为有效的 CultureInfo 值(例如,“en-US”),生成项目时会产生一个包含所有可本地化的资源的附属程序集。
<Resource Include="RunIcon.JPG">
<Localizable>False</Localizable>
</Resource>
由于 RunIcon.JPG 对所有区域性都应具有同样的外观,因此不需要对其进行本地化。 Localizable 设置为 false ,以使其保留在非特定语言主程序集而不是附属程序集中。 所有不可编译资源的默认 Localizable 值都设置为 true 。
对“运行”对话框进行本地化
Parse
生成应用程序之后,对其进行本地化的第一步是将可本地化的资源从附属程序集中分析出来。 为了演示本主题,请使用 LocBaml Tool Sample 上的示例 LocBaml 工具。 请注意,LocBaml 只是一个示例工具,其目的是帮助您了解有关如何生成适合您的本地化过程的本地化工具的入门知识。 使用 LocBaml 可以运行下面的命令以进行分析:LocBaml /parse RunDialog.resources.dll /out: ,从而生成“RunDialog.resources.dll.CSV”文件��
Localize
使用您所选的支持 Unicode 的 CSV 编辑器来编辑此文件。 筛选掉本地化类别为“None”的所有项。 您应看到下面的项:
资源键 |
本地化类别 |
值 |
Button_1:System.Windows.Controls.Button.$Content |
按钮 |
OK |
Button_2:System.Windows.Controls.Button.$Content |
按钮 |
取消 |
Button_3:System.Windows.Controls.Button.$Content |
按钮 |
Browse... |
ComboBox_1:System.Windows.Controls.ComboBox.$Content |
ComboBox |
|
TextBlock_1:System.Windows.Controls.TextBlock.$Content |
文本 |
Type the name of a program, folder, document, or Internet resource, and Windows will open it for you. |
TextBlock_2:System.Windows.Controls.TextBlock.$Content |
文本 |
Open: |
Window_1:System.Windows.Window.Title |
标题 |
运行 |
将该应用程序本地化为德语版本需要进行下面的翻译:
资源键 |
本地化类别 |
值 |
Button_1:System.Windows.Controls.Button.$Content |
按钮 |
OK |
Button_2:System.Windows.Controls.Button.$Content |
按钮 |
Abbrechen |
Button_3:System.Windows.Controls.Button.$Content |
按钮 |
Durchsuchen… |
ComboBox_1:System.Windows.Controls.ComboBox.$Content |
ComboBox |
|
TextBlock_1:System.Windows.Controls.TextBlock.$Content |
文本 |
Geben Sie den Namen eines Programms, Ordners, Dokuments oder einer Internetresource an. |
TextBlock_2:System.Windows.Controls.TextBlock.$Content |
文本 |
Öffnen: |
Window_1:System.Windows.Window.Title |
标题 |
运行 |
Generate
本地化的最后一步涉及到创建新近本地化的附属程序集。 可以使用下面的 LocBaml 命令完成此操作:
LocBaml.exe /generate RunDialog.resources.dll /trans:RunDialog.resources.dll.CSV /out: . /cul:de-DE
在德语版 Windows 上,如果此 resources.dll 被放置在主程序集旁边的“de-DE”文件夹中,则会自动加载此资源而不是“en-US”文件夹中的资源。 如果没有德语版的 Windows 以测试这种情况,请将区域性设置为您所使用的 Windows 的区域性(例如, en-US),并替换原始的 resources.dll。
Satellite Resource Loading
代码 |
原始英语 BAML |
本地化 BAML |
非特定区域性资源 |
其他英语资源 |
其他被本地化到德语的资源 |
.NET framework 根据应用程序的 Thread.CurrentThread.CurrentUICulture 自动选择要加载的附属资源程序集。 其默认设置为您的 Windows 操作系统的区域性。 因此,如果您使用的是德语版 Windows,则会加载 de-DE\MyDialog.resources.dll;如果您使用的是英语版 Windows,则会加载 en-US\MyDialog.resources.dll。 通过在项目的 AssemblyInfo.* 中指定 NeutralResourcesLanguage,可以设置应用程序的最终回退资源。 例如,如果您指定:
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
则如果 de-DE\MyDialog.resources.dll 和 de\MyDialog.resources.dll 都不可用,则德语版 Windows 将使用 en-US\MyDialog.resources.dll。
Microsoft 沙特阿拉伯主页
设计全球 Microsoft 主页
Microsoft 沙特阿拉伯网站的这个实体模型阐释了针对 RightToLeft 语言提供的全球化功能。 诸如希伯来语和阿拉伯语之类的语言具有从右到左的阅读顺序,因此 UI 的布局方式通常必须与英语等从左到右的语言中的布局方式不同。 从左右方向的语言本地化到右左方向的语言或者反之可能相当困难。 WPF 旨在使此类本地化工作变得更容易。
FlowDirection
Homepage.xaml:
<Page x:Uid="Page_1" x:Class="MicrosoftSaudiArabiaHomepage.Homepage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" FlowDirection="LeftToRight" Localization.Comments="FlowDirection(This FlowDirection controls the actual content of the homepage)" xml:lang="en-US">
请注意 Page 上的 FlowDirection 属性。 将此属性更改为 RightToLeft 将更改 Page 及其子元素的 FlowDirection ,以使此 UI 的布局如阿拉伯语用户所期望的那样变为从右到左。 可以通过在任何元素上指定显式的 FlowDirection 来重写继承行为。 FlowDirection 属性对所有 FrameworkElement 或文档相关元素都可用,并且具有隐式值 LeftToRight 。
请注意,当根 FlowDirection 发生更改时,甚至连背景渐变画笔都进行了正确的翻转:
FlowDirection="LeftToRight"
FlowDirection="RightToLeft"
避免对面板和控件使用固定维度
请浏览一下 Homepage.xaml,您会注意到,除了为顶级 DockPanel 上的整个 UI 指定的固定宽度和高度之外,没有其他固定维度。 请避免使用固定尺寸,以防系统裁剪可能比源文本长的本地化文本。 WPF 面板和控件将根据其所包含的内容自动调整大小。 大多数控件还具有最小和最大尺寸,设置这些尺寸可以加强控制(例如 MinWidth= “20”)。 通过 Grid ,还可以使用“*”设置相对宽度和高度(例如 Width= “0.25*”),或使用该控件的单元格大小共享功能。
本地化注释
在很多情况下,内容可能不太明确,难以翻译。 开发人员或设计人员能够通过本地化注释为本地化人员提供额外的上下文和注释。 例如,下面的 Localization.Comments 阐明了字符“|”的用法。
<TextBlock x:Uid="TextBlock_2" DockPanel.Dock="Right" Foreground="White" Margin="5,0,5,0" Localization.Comments="$Content(This character is used as a decorative rule.)"> | </TextBlock>
此注释与 TextBlock_1 的内容相关联,并且在使用 LocBaml 工具(请参见如何:对应用程序进行本地化 )时,可以在输出 .csv 文件的 TextBlock_1 行的第六列看到此注释:
资源键 |
类别 |
可读性 |
可修改性 |
注释 |
值 |
TextBlock_1:System.Windows.Controls.TextBlock.$Content |
文本 |
TRUE |
TRUE |
此字符被用作装饰性规则。 |
| |
使用下面的语法可以将注释放置在任何元素的内容或属性上:
<TextBlock x:Uid="TextBlock_1" DockPanel.Dock="Right" Foreground="White" Margin="5,0,5,0" Localization.Comments="$Content(This is a comment on the TextBlock's content.) Margin(This is a comment on the TextBlock's Margin property.)"> | </TextBlock>
本地化特性
通常,开发人员或本地化经理需要控制本地化人员能够阅读和修改的内容。 例如,可能不希望本地化人员翻译贵公司的名称或法律用语。 WPF 提供了一些特性,使用这些特性可以设置元素的内容或属性(本地化工具可以使用这些内容或属性锁��、隐藏元素或对元素进行排序)的可读性、可修改性和类别。 有关更多信息,请参见 Attributes 。 为了演示此示例,LocBaml 工具仅输出这些特性的值。 WPF 控件对这些特性都使用默认值,但可以重写这些默认值。 例如,下面的示例重写 TextBlock_1 的默认本地化特性,将其内容设置为可供本地化人员阅读,但不能被其修改。
<TextBlock x:Uid="TextBlock_1" Localization.Attributes= "$Content(Readable Unmodifiable)"> Microsoft Corporation </TextBlock>
除了可读性和可修改性特性之外,WPF 还提供了常见 UI 类别 (LocalizationCategory ) 的枚举,使用该枚举可以为本地化人员提供更多的上下文。 平台控件的 WPF 默认类别也可以在 XAML 中重写:
<TextBlock x:Uid="TextBlock_2"> <TextBlock.ToolTip> <TextBlock x:Uid="TextBlock_3" Localization.Attributes= "$Content(ToolTip Readable Unmodifiable)"> Microsoft Corporation </TextBlock> </TextBlock.ToolTip> Windows Vista </TextBlock>
WPF 所提供的默认本地化特性还可以通过代码进行重写,因此您可以正确地为自定义控件设置合适的默认值。 例如:
[Localizability(Readability = Readability.Readable, Modifiability=Modifiability.Unmodifiable, LocalizationCategory.None)]
public class CorporateLogo: TextBlock
{
…
..
.
}
在 XAML 中设置的实例特定特性优先于在自定义控件的代码中设置的值。 有关特性和注释的更多信息,请参见本地化特性和注释 。
字体回退和复合字体
如果您指定一种不支持给定码位范围的字体,则 WPF 将使用位于“Windows\Fonts”目录中的 Global User Interface.compositefont 自动回退到支持该范围的字体。 复合字体与任何其他字体的用法一样,通过设置元素的 FontFamily(例如 FontFamily= “Global User Interface”)可以显式使用复合字体。 通过创建您自己的复合字体并指定针对特定码位范围和语言所使用的字体,可以指定您自己的字体回退首选项。
有关复合字体的更多信息,请参见 FontFamily 。
本地化 Microsoft 主页
可以按照“运行”对话框示例中的相同步骤对此应用程序进行本地化。 在 Globalization Homepage Sample (全球化主页示例)中可以找到本地化的阿拉伯语 .csv 文件。
发表评论
-
wpf开源项目
2019-12-03 11:35 576SharpDevelop SharpDevelop是一款用 ... -
wpf datagrid样式
2014-12-23 22:42 1023http://www.iringo.cn/wpf-datag ... -
WPF 的全球化
2010-10-06 00:40 1356本主题介绍了您在编写面向全球市场的 Windows Pre ... -
WPF如何:对应用程序进行本地化
2010-10-06 00:28 1293本教程演示如何使用 LocBaml 工具创建本地化的应用程 ... -
WPF概述一
2010-02-03 10:59 0以前在工作之余学习了WPF,感觉WPF对于软件界面的表现不仅快 ... -
WPF中如何让程序支持国际化
2009-12-23 01:47 1627如果想让我们的应用程序支持多国语言,就像瑞星那么样支持中日英三 ... -
MediaElement详解
2009-12-23 09:32 1988MediaElement:播放器 MediaOpen ... -
WPF电子书
2010-01-18 10:47 1638一些好的电子书 -
WPF开发之mvvm插件
2010-01-18 10:45 1257该插件的使用请参见附件示例 -
WPF开发3D工具类
2010-01-18 10:44 1197请参见附件 -
使用WPFRibbonCTP开发类似于office 2007界面的WPF应用程序
2010-01-18 10:42 1427具体请参见附件 -
MediaElement详解
2009-10-29 14:00 1735MediaElement:播放器 MediaOp ... -
HLSL自定义渲染特效之完美攻略(中)
2009-10-23 15:40 1261通过上一节的解说,大家是否已经对HLSL有了较深刻的认识和理解 ... -
HLSL自定义渲染特效之完美攻略(上)
2009-10-23 15:15 2640Shader Effect中文名称为“渲染特效”或“滤镜”,W ... -
基于像素的图像合成(For Silverlight)
2009-10-23 14:36 1069本节我将为大家讲解如何在Silverlight平台上实现上一节 ... -
基于像素的图像合成(For WPF)
2009-10-23 14:33 2595传统的基于GDI或G ... -
WPF中如何让程序支持国际化
2009-09-18 11:48 1889如果想让我们的应用程序支持多国语言,就像瑞星那么样支持中日英三 ... -
WPF中的依赖属性
2009-09-17 10:57 1922依赖属性 (Dependency Property) ... -
ListBox(CheckListBox)样式
2009-07-31 11:42 2708样式代码: <Application.Resour ... -
wpf仿vista得玻璃效果按钮
2009-07-31 10:07 4806仿vista玻璃效果的按钮样式: <Style x ...
相关推荐
wpf国际化、本地化、多语言。.net,xaml。
wpf国际化
官方实例,WPF实例程序,命令,动画,资源,样式及模板,本地化,拖拽,绑定,希望对初学WPF的童鞋有用...
在WPF中界面国际化很容易实现,但是数据国际化确实是一个难题。为了解决项目中的需求,我设计了解决方案。 思路: 1.在数据库中,需要国际化的字段存放国际化key值; 2.在xaml中创建多套国际化,key为数据库中的值...
WPF 窗体最大化、最小化、还原 | WPF 最大化/最小化 按钮图标切换
本资源描述了.net 桌面架构WPF显示界面汉化以及中英文切换方法,包含先关代码及操作详细步骤,亲测,可用,希望对您学习有帮助
wpf 实现程序运行中动态切换程序语言,此方法非常简单,实现方式是扩展标记语言实现。
wpf国际化本地化多语言 当您将自己的产品限制为只能通过一种语言使用时,您便将潜在的客户群限制为全球 65 亿人口中的一小部分。如果您想让自己的应用程序被全球用户所接受,那么对产品进行经济而有效的本地化将是...
WPF个性化
WPF托盘化最小化
WPF本地化LocBaml.exe文件,用于本地化翻译,支持多国语言
WPF本地化工具,是我自己使用工具,肯定可以使用。使用请看我的博客https://blog.csdn.net/xionglifei2014/article/details/80224421
C:\Documents and Settings\Administrator\桌面\扫描图像测试 比方说,这个路径下有10张图片,可以循环点击显示这10张图片 使用FileStream 解决文件被进程占用问题。使用一个计数变量,可以头尾循环
WPF本地化程序 LocBaml 用它可以生成对应的csv或txt文件。
Wpf下载网络文件到本地指定路径(简单示例)
WPF本地化用的LocBaml,.NET4.0
WPF 4概述ppt
调试wpf-wpf可视化树+辅助类
wpf 多语言 国际化 demo c# wpf 多语言 例子 不能下联系我.http://www.baiyuxiong.com
7. WPF基础之样式设置和模板化 51 8. 详谈WPF开发中的数据虚拟化 64 XAML语法 74 1. XAML语法术语 74 2. 代码隐藏和XAML 82 3. XAML和自定义类 83 4. 标记扩展和XAML 87 5. XAML命名空间和命名空间映射 90 6. WPF...