标签: c# wpf textbox font-size
可以在运行时更改文本框字体大小吗?
我试着这样做:
foreach (Control ctrl in gridArray[i].Children) { if(ctrl.GetType() == typeof(TextBox)) { (TextBox)ctrl.FontSize = (double)5; } }
但它无效
答案 0 :(得分:4)
强制转换没有高优先级,你的代码有效地尝试将ctrl.FontSize中的值转换为TextBox,你需要添加括号(并且双重转换是多余的):
ctrl.FontSize
TextBox
((TextBox)ctrl).FontSize = 5;
此外,检查控件类型的方式并不是一个好主意,请改用is。否则,不包括TextBox的子类。
is
if (ctrl is TextBox)
此外,您不仅要关注类型和演员,还要与TextBox类界面互动,您也可以使用as:
as
var textBox = ctrl as TextBox; if (textBox != null) textBox.FontSize = 5;
这也方便地摆脱了括号丛林。