Silverlight计算汉字的宽度

来源:互联网 发布:故事板制作软件 编辑:程序博客网 时间:2024/05/17 04:08

最近做一个查询控件的时候

查询条件的个数不固定的

有可能是三个、五个、六个查询(用户名、出生日期、年龄、等等)条件输入

在对界面进行排板的时候,非常难对挤

如果查询条件固定那到还好了六个就六个

真接在界面上固定就完了

可现在不行,根据用户权限的不同,查询条件的输入个数是同的

用一个Grid在Grid里把查询条件存放去就好了

可是由于Grid要指定行列的个数

感觉算还是不方便于是就改用WrapPanel

现在要控制,每个控件宽度一样,那WrapPanel排列起来就好看多了

于是就要来计算字的宽度:当前页面,当前字体,所占的宽度

        double Measure(double fontSize, FontFamily fontFamily, FontWeight fontWeight)        {            TextBlock tb = new TextBlock();            if (0< fontSize)            {                tb.FontSize = fontSize;            }            if (null != fontFamily)            {                tb.FontFamily = fontFamily;            }            if( null != fontWeight)            {                tb.FontWeight = fontWeight;            }            tb.Text = "宽";            TextBlock tb2 = tb;            return new Size(tb2.ActualWidth, tb2.ActualHeight).Width;        }
如果字段没有特别的样式,如粗体、斜体等

好像字的宽度就是fontSize的大小