这是我最近碰到的一个问题,困扰了许久,在网上找了许久,最后在License的帮助下解决了这个问题
http://www.cnblogs.com/akwwl/archive/2012/08/12/2635614.html#2523515
Silverlight是不支持键盘录入上下标的,那么当用户录入上下标信息时,应该怎么办呢?
1.在Silverlight中遇到需要显示上标或者下标(如:水的化学式H2O)时,我们可以使用Silverlight中专门处理的上下标的特殊字符显示。
上标的特殊字符:
Superscript:
0 : U+2070
1 : U+00B9
2 : U+00B2
3 : U+00B3
4-9 : U+2074-2079(表示从4到9的特殊字符)
+ : U+207A
- : U+207B
= : U+207C
( : U+207D
) : U+207E
n : U+207F
下标的特殊字符:
0-9 : U+2080-2089(表示从0到9的特殊字符)
+ : U+208A
-: U+208B
=: U+208C
(: U+208D
): U+208E
以上特殊字符中,冒号前面的为我们要显示的内容,冒号后面的为Silverlight中如何显示的特殊字符;
其中U在代码中使用的是“\x”,比如下标2就是用“\x2082”表示。
2.使用方法如下:
显示水的化学式时,显示的字符串为:string water = "H" + "\x2082" + "O";
显示勾股定理时,现实的字符串为:string s = "a\x00B2+b\x00B2=c\x00B2";
其中显示下标2的特殊字符串为:“\x2082”,显示上标2的特殊字符串为“\x00b2”
3.在控件中的显示如下:
<TextBlock HorizontalAlignment="Left" Margin="0" Name="msg" Text="TextBlock" VerticalAlignment="Top" />
后台代码:
msg.Text=" Fe\x2082O\x00B3";(显示三氧化二铁的化学式)
界面显示效果:
以上是License的博文,在这里补充一点,Silverlight是不支持键盘录入上下标的,那么当用户录入上下标信息是,应该怎么办呢?
创建一个ListBox,然后把这些上下标添加到一个List中,并绑定到这个ListBox上
IList<string> list = new List<string>(); list.Add("\x2080"); list.Add("\x2081"); list.Add("\x2082"); ........
cmbType.ItemsSource = list; 这样之后就可以在程序中通过拷贝字符及上下标定义你想要的任何一下带有上下标的字符串了,你也也可以把这些上下标及字符串存入数据库中