Изменить размер шрифта TextBox - PullRequest
1 голос
/ 16 октября 2011

в WPF Можно ли изменить размер шрифта текстового поля во время выполнения?

Я пытался сделать это:

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

    }
 }

, но это не сработало

1 Ответ

4 голосов
/ 16 октября 2011

Приведение не имеет высокого приоритета, ваш код фактически пытается преобразовать значение в 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;

Это также удобно избавляет от джунглей в скобках.

...