最近做一个查询控件的时候
查询条件的个数不固定的
有可能是三个、五个、六个查询(用户名、出生日期、年龄、等等)条件输入
在对界面进行排板的时候,非常难对挤
如果查询条件固定那到还好了六个就六个
真接在界面上固定就完了
可现在不行,根据用户权限的不同,查询条件的输入个数是同的
用一个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的大小
本文探讨了在查询控件中实现动态布局的方法,特别是针对查询条件数量不定的情况。通过使用WrapPanel并自定义计算文本宽度的方式,确保了不同数量的查询条件在界面上能够整齐排列。
1万+

被折叠的 条评论
为什么被折叠?



