基于 .Net Core、WPF 的多语言实现(一)

article/2025/9/23 19:20:35

基于 .Net Core、WPF 的多语言实现(一)

  • 学习 CultureInfo
  • 基于WPF 的CultureInfo 信息大全
  • Startup.cs
  • MainWindow.Xaml
  • MainWindow.Xaml.cs

学习 CultureInfo

官方文档: CultureInfo .

提供有关特定区域性(对于非托管代码开发,则称为“区域设置”)的信息。 这些信息包括区域性的名称、书写系统、使用的日历、字符串的排序顺序以及对日期和数字的格式化设置。

基于WPF 的CultureInfo 信息大全

在这里插入图片描述

Startup.cs

using System.Windows;namespace Simple.CultureInfoView;public class Startup: Application
{[STAThread]private static void Main(string[] args){try{new Startup().Run(new MainWindow());}catch (Exception ex){MessageBox.Show(ex.ToString());}finally{}}
}

MainWindow.Xaml

<Windowx:Class="Simple.CultureInfoView.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:data="clr-namespace:System.Globalization;assembly=System.Runtime"xmlns:local="clr-namespace:Simple.CultureInfoView"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"Title="MainWindow"Width="1400"Height="1000"FontSize="19"mc:Ignorable="d"><Window.Resources><ResourceDictionary><Style TargetType="TextBlock"><Setter Property="Margin" Value="2,8" /></Style></ResourceDictionary></Window.Resources><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="auto" /><ColumnDefinition Width="*" /><ColumnDefinition Width="auto" /></Grid.ColumnDefinitions><ListView x:Name="PART_ListView"><ListView.ItemContainerStyle><Style TargetType="ListViewItem"><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ListViewItem"><Border Background="{TemplateBinding Background}" BorderThickness="2"><ContentPresenter /></Border><ControlTemplate.Triggers><Trigger Property="IsMouseOver" Value="True"><Setter Property="Background" Value="Green" /></Trigger><Trigger Property="IsSelected" Value="True"><Setter Property="Background" Value="Yellow" /></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style></ListView.ItemContainerStyle><ListView.ItemTemplate><DataTemplate DataType="{x:Type data:CultureInfo}"><Label Content="{Binding DisplayName}" /></DataTemplate></ListView.ItemTemplate></ListView><Grid Grid.Column="1"><Grid.RowDefinitions><RowDefinition Height="auto" /><RowDefinition Height="auto" /><RowDefinition Height="auto" /></Grid.RowDefinitions><StackPanel><GroupBox Padding="10,0,0,0" Header="基本信息"><StackPanel><TextBlock><Run Text="Name :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.Name, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="NativeName :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.NativeName, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="EnglishName :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.EnglishName, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="DisplayName :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DisplayName, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="TwoLetterISOLanguageName :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.TwoLetterISOLanguageName, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="ThreeLetterWindowsLanguageName :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.ThreeLetterWindowsLanguageName, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="ThreeLetterISOLanguageName :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.ThreeLetterISOLanguageName, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="CultureTypes :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.CultureTypes, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="LCID :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.LCID, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="KeyboardLayoutId :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.KeyboardLayoutId, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="IsReadOnly :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.IsReadOnly, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="IsNeutralCulture :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.IsNeutralCulture, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="IetfLanguageTag :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.IetfLanguageTag, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="UseUserOverride :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.UseUserOverride, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock></StackPanel></GroupBox><GroupBox Padding="10,0,0,0" Header="Fomatting Date and Currency "><StackPanel><TextBlock><Run Text="FullDateTimePattern :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.FullDateTimePattern, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="TimeSeparator :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.TimeSeparator, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="LongDatePattern :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.LongDatePattern, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="LongTimePattern :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.LongTimePattern, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="MonthDayPattern :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.MonthDayPattern, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="DateSeparator :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.DateSeparator, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="NativeCalendarName :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.NativeCalendarName, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="PMDesignator :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.PMDesignator, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock></StackPanel></GroupBox></StackPanel></Grid><Grid Grid.Column="2"><StackPanel><GroupBox Header="星期名称"><StackPanel><TextBlock><Run Text="周一 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.DayNames[1], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="周二 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.DayNames[2], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="周三 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.DayNames[3], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="周四 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.DayNames[4], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="周五 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.DayNames[5], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="周六 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.DayNames[6], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="周天 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.DayNames[0], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock></StackPanel></GroupBox><GroupBox Header="月名称"><StackPanel><TextBlock><Run Text="一月 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.MonthNames[0], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="二月 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.MonthNames[1], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="三月 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.MonthNames[2], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="四月 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.MonthNames[3], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="五月 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.MonthNames[4], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="六月 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.MonthNames[5], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="七月 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.MonthNames[6], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="八月 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.MonthNames[7], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="九月 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.MonthNames[8], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="十月 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.MonthNames[9], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="十一月 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.MonthNames[10], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock><TextBlock><Run Text="十二月 :" /><Run Foreground="Red" Text="{Binding ElementName=PART_ListView, Path=SelectedItem.DateTimeFormat.MonthNames[11], Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" /></TextBlock></StackPanel></GroupBox></StackPanel></Grid></Grid>
</Window>

MainWindow.Xaml.cs

#region << 版 本 注 释 >>
/** ----------------------------------------------------------------* Copyright @ Daniel. All rights reserved.* 作    者 :Daniel大妞* 创建时间 :2022/7/3/22:57* 类 名 称 :MainWindow.xaml.cs* 域名空间 :Simple.CultureInfoView* 类 描 述 :* ------------------------------------------------------* 历史更新记录* 版本 :  V1.0.0.0        修改时间:2022/7/3/22:57         修改人:Daniel大妞* 修改内容:* */
#endregionusing System.Globalization;
using System.Windows;namespace Simple.CultureInfoView;/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{public MainWindow(){this.InitializeComponent();this.PART_ListView.ItemsSource = CultureInfo.GetCultures(CultureTypes.AllCultures);}
}

http://chatgpt.dhexx.cn/article/Zls6E4U8.shtml

相关文章

使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)

概述 最近&#xff0c;有客户向我们请求开发一个前端下拉控件&#xff0c;需求是显示了一个列表&#xff0c;其中包含可由用户单独选择的项目控件&#xff0c;该控件将在下拉列表中显示多选TreeView&#xff08;树形图&#xff09;。 如今WijmoJS已经实现了该控件——DropDownT…

nodejs+express搭建javascript在线IDE及CodeMirror代码提示问题

title: js在线学习平台的介绍及安装 nodejsexpress搭建javascript在线IDE 项目地址 github:https://github.com/sixtrees/js-online-running 背景 这两天在看阮一峰的《ES6标准入门》&#xff0c;对其中涉及到的代码示例部分&#xff0c;感觉到很不方便&#xff0c;不知道阮老师…

Winform中实现向窗体中拖放照片并显示以及拖放文件夹显示树形结构(附代码下载)

场景 向窗体中拖拽照片并显示效果 向窗体中拖拽文件夹并显示树形结构效果 注&#xff1a; 博客主页&#xff1a; https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 新建一个窗体&#xff0c;在窗体中拖…

Day 21-30 :Web前端概述

Web前端概述 说明&#xff1a;本文使用的部分插图来自Jon Duckett先生的*HTML and CSS: Design and Build Websites*一书&#xff0c;这是一本非常棒的前端入门书&#xff0c;有兴趣的读者可以在亚马逊或者其他网站上找到该书的购买链接。 HTML 是用来描述网页的一种语言&#…

托管 AJAX 能否让 Web 应用程序提速?

有关本主题的多项研究表明&#xff0c;创建 AJAX Web 应用程序时遇到的两个最重要问题是&#xff0c;运行速度和响应速度。这可能是一些开发者选择创建原生应用程序&#xff08;而不是 Web 应用程序&#xff09;的部分原因所在。 但如果我说有一种方法可以创建运行速度和响应速…

数据库实验代码展示(图书管理系统)

数据库实验视频演示及讲解地址 namespace BookManageSystem {partial class Add_BookInfo{/// <summary>/// Required designer variable./// </summary>private System.ComponentModel.IContainer components = null;/// <summary>/// Clean up any resou…

【C#】利用C#窗体与SQL Server的连接、Treeview制作SQL Server数据库查看器

实质上&#xff0c;本文的中心还是在讨论C#对SQL Server的增删改查&#xff0c;只是这次创新一点&#xff0c;配合Treeview制作SQL Server数据库查看器。 具体如下图&#xff1a; 根据SQL Server&#xff0c;Test数据库中的表的结构与内容&#xff1a; 编写一个对Test数据库的…

获取文件夹内文件名字及源代码C#

获取文件夹内文件名字及源代码C# using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks…

TreeView控件与SQL数据库的应用(遍历算法)

开发环境&#xff1a;WinXP SP3&#xff0c;VS2008&#xff0c;SQL2000 TreeView控件与SQL数据库的应用(遍历算法) (数据与TreeView的绑定及Treeview的增加、删除、修改、遍历等数据库的操作) 这个是数据库连接及一些操作数据库的方法&#xff0c;文件&#xff1a;SqlManager.c…

TreeView数据绑定

http://www.cnblogs.com/mgen/archive/2011/07/21/2113152.html [更新至V2]WPF&#xff1a;MVVM简单文件浏览器 源代码下载 2.0 下载页面 1.0 下载页面 注意&#xff1a;链接是微软SkyDrive页面&#xff0c;下载时请用浏览器直接下载&#xff0c;用某些下载工具可能无法下载 源…

C#界面设计之树目录TreeView的使用

还是先上效果图&#xff1a; 主要代码如下&#xff1a; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;namespace TreeDemo {public partial c…

treeview 跨窗体拖拽功能的实现(一)

功能实现&#xff1a; 1.从工具窗体往任务窗体拖拽&#xff1b; 2.在任务窗体中改变节点的顺序&#xff1b; 3.右键复制节点&#xff0c;删除节点 工具窗体treeview1,&#xff1a; 涉及使用的事件&#xff1a;DragEnter&#xff0c; DragOver ,ItemDrag, NodeMouseDouble…

Virtual Treeview 安装以及入门

Virtual Treeview是一套Delphi下优秀的VCL控件&#xff0c;代码质量高&#xff0c;使用灵活、功能强大、性能非常好&#xff0c;可以用于表达Treeview和表格类数据。它的代码现在托管在google code上。 Virtual Treeview是一个“纯VCL”控件&#xff0c;这意味着它不是基于任何…

android treeview 树形结构,前端开发中,使用TreeView控件创建树形结构

原标题&#xff1a;前端开发中&#xff0c;使用TreeView控件创建树形结构 Wijmo是一款使用Type编写的新一代Java/HTML5控件集。它秉承触控优先的设计理念&#xff0c;在全球率先支持AngularJS&#xff0c;并提供性能卓越、零依赖的FlexGrid和图表等多个控件。 我们已经知道在Wi…

透透彻彻了解服务器技术

什么是服务器   服务器是一种高性能计算机&#xff0c;作为网络的节点&#xff0c;存储、处理网络上80&#xff05;的数据、信息&#xff0c;因此也被称为网络的灵魂。做一个形象的比喻&#xff1a;服务器就像是邮局的交换机&#xff0c;而微机、笔记本、PDA、手机等固定或移…

服务器的介绍

一 、IDC/机柜/物理server/云主机介绍 1.互联网数据中心 &#xff08;Internet Data Center&#xff09; 互联网数据中心图片 &#xff08;1&#xff09;IDC的简介 简称IDC&#xff0c;是电信部门利用已有的互联网通信线路、带宽资源&#xff0c;建立的标准化电信专业级机房环…

web服务器(技术讲解)

2.Web服务器&#xff08;技术讲解&#xff09; 1.ASP 微软&#xff1a;国内最早流行在HTML中嵌入了VB脚本&#xff0c;ASPCOM在ASP开发中&#xff0c;基本一个页面有几千行的业务代码&#xff0c;页面杂乱&#xff0c;维护成本非常高 2.PHP 开发速度很快&#xff0c;功能强…

关于服务器

初始服务器 云操作 以下是重装系统操作 出现黑窗口后&#xff1a; 输入—>sudo passwd命令–>输入密码&#xff08;密码不可见&#xff09;–>再次输入密码&#xff08;密码不可见&#xff09;–>su命令&#xff08;可使用root用户&#xff09;–>输入密码&…

云服务器简介

云服务器简介 一、云服务器二、云服务的灵魂——虚拟化三、云服务器ECS概念 一、云服务器 1、云服务器简介 云计算服务器又称为云服务器或云主机&#xff0c;是云计算服务体系中的一项主机产品&#xff0c;它有效地解决了传统物理主机与VPS服务中&#xff0c;存在的管理难度打…

服务器概述

1、什么是服务器&#xff1f; 服务器&#xff1a;分为服务器硬件和服务器软件。在硬件服务器&#xff08;计算机&#xff09;上安装服务器软件&#xff0c;才可以对外提供服务。 比如&#xff1a;让其他的计算机访问当前服务器&#xff0c;为其他的计算机提供服务。 &#xff…