Я пытаюсь установить шрифт TextBox в LightSwitch. Я не уверен, есть ли проблема с моим кодом, или если это просто невозможно.
Код выполняется, и я прошел через него, чтобы убедиться, что он выполняется, и весь код достигнут и выполнен, но нет изменений в элементах управления на экране.
Мой код:
private void SetMono(string controlName)
{
var ctrl = this.FindControl(controlName);
if (ctrl != null)
{
ctrl.ControlAvailable += (s, e) =>
{
if (e.Control is TextBox) // I put break point here to test. {
var tb = (TextBox)e.Control;
var ff = new System.Windows.Media.FontFamily("courierNew,courier,monospace");
tb.FontFamily = ff;
}
};
}
}
Я делаю что-то неправильно?
(Я использую VS 2013)
Проблема была в моем FontFamily. Я не мог найти много информации о том, как следует назвать семейство шрифтов, но "Consolas"
действительно работал.
Итоговый код:
private void SetMono(string controlName)
{
var ctrl = this.FindControl(controlName);
if (ctrl != null)
{
ctrl.ControlAvailable += (s, e) =>
{
if (e.Control is TextBox)
{
var tb = (TextBox)e.Control;
tb.FontFamily = new System.Windows.Media.FontFamily("Consolas");
}
};
}
}
tb.FontSize = 20;
Это работает, и доказывает, что контроль является правильным, и я взаимодействую с правильным контролем. Моя проблема должна быть с FontFamily.Consolas
работает, я скопировал отсюда , кажется, что это моноширинный шрифт, и он работал как семейство шрифтов, поэтому он будет работать для меня.