在WPF中可以在运行时更改文本框的字体大小吗?
我试着这样做:
foreach (Control ctrl in gridArray[i].Children) { if(ctrl.GetType() == typeof(TextBox)) { (TextBox)ctrl.FontSize = (double)5; } }
但它没有用
强制转换没有高优先级,你的代码有效地尝试将 ctrl.FontSize 中的值转换为 TextBox ,你需要添加括号(并且双重转换是多余的):
ctrl.FontSize
TextBox
((TextBox)ctrl).FontSize = 5;
另外,检查控件类型的方式并不是一个好主意,请改用is . 否则不包括 TextBox 的子类 .
if (ctrl is TextBox)
此外,因为您不仅关心类型和转换以及与 TextBox 类接口交互,您也可以使用as:
var textBox = ctrl as TextBox; if (textBox != null) textBox.FontSize = 5;
这也方便地摆脱了括号丛林 .
1 回答
强制转换没有高优先级,你的代码有效地尝试将
ctrl.FontSize
中的值转换为TextBox
,你需要添加括号(并且双重转换是多余的):另外,检查控件类型的方式并不是一个好主意,请改用is . 否则不包括
TextBox
的子类 .此外,因为您不仅关心类型和转换以及与
TextBox
类接口交互,您也可以使用as:这也方便地摆脱了括号丛林 .