WPF中实现根据拼音查找汉字

1、WPF的一个触摸屏项目,需要输入姓名,但是屏幕不支持汉字输入,使用虚拟键盘不稳定,为了解决该问题特此进行处理。

2、新建一个类转换类,里面初始化一个数组,数组包含拼音,以及拼音下的常用的汉字。

3、根据拼音,对照出对应的汉字,然后在对汉字进行拆分,获取到单个汉字。

例子如下:

private static readonly string[][] _Allhz =
new string[][]
{
new string[]{"A","啊阿呵吖嗄腌锕錒"},
new string[]{"Ai","爱矮挨哎碍癌艾唉哀蔼隘埃皑呆嗌嫒瑷暧捱砹"},
new string[]{"An","按安暗岸俺案鞍氨胺厂广庵揞犴铵桉谙鹌埯黯"},
new string[]{"Ang","昂肮盎仰卬岇昻枊醃醠骯"},
new string[]{"Ao","袄凹傲奥熬懊敖翱澳嚣拗媪廒骜嗷坳遨聱螯獒鏊鳌鏖"},
new string[]{"Ba","把八吧爸拔罢跋巴芭扒坝霸叭靶笆疤耙捌粑茇岜鲅钯魃菝灞"},
new string[]{"Bai","百白摆败柏拜佰伯稗捭呗掰"},

~~~~~~~~//省去若干
new string[]{"Zui","最嘴醉罪堆咀觜蕞"},
new string[]{"Zun","尊遵鳟撙樽僎僔噂墫奠嶟拵捘捽栫瀳繜罇袸譐跧踆蹲銌鐏鱒鶎鷷"},
new string[]{"Zuo","做作坐左座昨凿琢撮佐笮"}
};

/// <summary>
/// 拼音转汉字
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string ConvertPzToHz(string str)
{
str = str.ToLower();

if (str == null)
return null;
byte[] bAry = new byte[2];
StringBuilder rtnSb = new StringBuilder();
for (int j = 0; j < _Allhz.Length; j++)
{
string py = _Allhz[j][0].ToLower();

if (py.IndexOf(str) != -1)
{
rtnSb.Append(_Allhz[j][1]);
break;
}
}
return rtnSb.ToString();
}

//对汉字字符串进行分解

char[] chars = strMsg.ToCharArray();

WPF中实现根据拼音查找汉字

时间: 2024-10-08 02:26:45

WPF中实现根据拼音查找汉字的相关文章

WPF中让Combobox具有查找功能

需求:由于combobox绑定的数据源数量比较多,如果让用户在下拉列中查找,难免会不太方便,于是就需要让combobox可以输入内容,并且希望根据用户输入的内容去自动匹配,这样效率就会提高! 先在xaml中添加一个combobox: <Grid>        <ComboBox IsTextSearchEnabled="False" IsEditable="True"   Height="23" HorizontalAlign

C#中实现输入汉字获取其拼音(汉字转拼音)的2种方法

主要介绍了C#中实现输入汉字获取其拼音(汉字转拼音)的2种方法,本文分别给出了使用微软语言包.手动编码实现两种实现方式,需要的朋友可以参考下 本文刚发布时,只写了一个实现方式,使用的是微软的语言包,但是对多音字的效果不怎么理想,甚至个别字会出现很诡异的错误,因此,现在扩展另一个方法,手动实现. 方式一.使用微软语言包 微软为了开发者实现国际化语言的互转,提供了Microsoft Visual Studio International Pack,这个扩展包里面有中文.日文.韩文.英语等各国语言包,

WPF中查找控件的扩展类

在wpf中查找控件要用到VisualTreeHelper类,但这个类并没有按照名字查找控件的方法,于是搜索网络,整理出下面这个类,感觉用起来很是方便. 贴出来,供大家参考. /// <summary> /// WPF/Silverlight 查找控件扩展方法 /// </summary> public static class VisualHelperTreeExtension { /// <summary> /// 根据控件名称,查找父控件 /// elementNa

wpf 中使用 ttf

因为实现ImageButton接触ttf在wpf中的使用,ttf是图标按钮的集合文件.可在阿里www.iconfont.cn网站选择下载.首先选择所需图标添加到购物车,选择完成后从购物车中选择"下载代码",便可将其中的图标打包生成ttf文件并下载至本地.下载的文件夹中包含图一所示文件,其中iconfont.ttf是程序所需文件,打开该文件可看到"字体名称",程序根据该名称查找ttf文件,c#代码中的引用格式为"#"+"字体名称"

pinyin4j:拼音与汉字的转换实例

Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换.拼音输出格式可以定制. 官网: http://pinyin4j.sourceforge.net/ 有时候,需要将汉字编程对应的拼音,以方便数据的处理.比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的.比如要查询"曹孟德",就可以输入"cmd",即"曹孟德"三个汉字的拼音"caomengde"各字的首字母.但是怎样才能将&qu

【转】WPF中Binding的技巧(一)

WPF中Binding的技巧(一) 在WPF应用的开发过程中Binding是一个非常重要的部分. 在实际开发过程中Binding的不同种写法达到的效果相同但事实是存在很大区别的. 这里将实际中碰到过的问题做下汇总记录和理解. 1. source = {binding} 和source = {binding RelativeSource={RelativeSource self},Path=DataContext}效果相同 理解:{binding} 不设定明确的绑定的source,这样bindin

WPF中的资源简介、DynamicResource与StaticResource的区别(转)

什么叫WPF的资源(Resource)?资源是保存在可执行文件中的一种不可执行数据.在WPF的资源中,几乎可以包含图像.字符串等所有的任意CLR对象,只要对象有一个默认的构造函数和独立的属性. 也就是说,应用程序中非程序代码的内容,比如点阵图.颜色.字型.动画/影片档以及字符串常量值,可将它们从程序中独立出来,单独包装成"资源(Resource)". 静态资源(Static Resource),动态资源(Dynamic Resources).这两者的区别是:静态资源在第一次编译后即确定

WPF中datagrid不显示滚动条问题

WPF中DataGrid是自带滚动条的,当内容显示不下时可以使用滚动条显示.但是,开发中遇到了DataGrid一直不显示滚动条.之前也曾遇到过同类问题,再次经过查找,发现是StackPanel的原因,特此记录. 以下内容原文请参考:http://www.cnblogs.com/lhx880619/archive/2011/12/08/2281420.html 原因也比较简单 就是因为DataGrid嵌套在了StackPanel中,查看微软文档http://msdn.microsoft.com/z

WPF入门教程系列十八——WPF中的数据绑定(四)

六.排序 如果想以特定的方式对数据进行排序,可以绑定到 CollectionViewSource,而不是直接绑定到 ObjectDataProvider.CollectionViewSource 则会成为数据源,并充当截取 ObjectDataProvider 中的数据的媒介,并提供排序.分组和筛选功能,然后将它传送到目标. 这个显示是使用 CollectionViewSource做为排序的数据源,首先将CollectionViewSource的Source 属性设置为 ObjectDataPr