首页 文章

更改TextBox的字体大小

提问于
浏览
1

在WPF中可以在运行时更改文本框的字体大小吗?

我试着这样做:

foreach (Control ctrl in gridArray[i].Children)
 {
    if(ctrl.GetType() == typeof(TextBox))
    {
        (TextBox)ctrl.FontSize = (double)5;

    }
 }

但它没有用

1 回答

  • 4

    强制转换没有高优先级,你的代码有效地尝试将 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;
    

    这也方便地摆脱了括号丛林 .

相关问题