Silverlight计算汉字的宽度

本文探讨了在查询控件中实现动态布局的方法,特别是针对查询条件数量不定的情况。通过使用WrapPanel并自定义计算文本宽度的方式,确保了不同数量的查询条件在界面上能够整齐排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

查询条件的个数不固定的

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

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

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

真接在界面上固定就完了

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

用一个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的大小


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值