2011-10-15 154 views
1

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

我想这样做:

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

    } 
} 

,但它没有工作

+0

如果有什么*“不起作用”*,您应该描述如何如此,即发生了什么。 –

回答

4

演员不具有高优先级,你的代码有效地试图在ctrl.FontSizeTextBox投的价值,你需要加括号(和双投是多余的):

((TextBox)ctrl).FontSize = 5; 

而且您检查控件的类型的方式不是这样的好我代替,请使用is。否则TextBox的子类不包括在内。

if (ctrl is TextBox) 

而且因为你不仅要关心类型和投以及与TextBox类界面交互时,您不妨使用as

var textBox = ctrl as TextBox; 
if (textBox != null) 
    textBox.FontSize = 5; 

这也方便摆脱了括号丛林。

相关问题