2014-06-12 1 views
1

J'essaie de définir la police d'un TextBox dans LightSwitch. Je ne suis pas sûr s'il y a un problème avec mon code, ou si ce n'est pas possible.Définition de la police dans les boîtes de texte du commutateur d'éclairage

Le code s'exécute, et je l'ai parcouru pour m'assurer qu'il s'exécute, et tout le code est atteint et exécuté, mais il n'y a pas de changement aux contrôles sur l'écran.

Mon code est:

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; 
        } 
       }; 
      } 
     } 

que je fais quelque chose de mal?

(J'utilise VS 2013)

+0

Pour tester j'ajouté 'tb.FontSize = 20;' Cela fonctionne, et prouve que le contrôle est correct, et je suis en interaction avec le droit de contrôle. Mon problème doit être avec la FontFamily. – JonathanPeel

+0

'Consolas' semblait fonctionner, j'ai copié de [ici] (http://stackoverflow.com/questions/4002290/setting-font-of-textbox-from-code-behind), il semble être une police monospace, et cela a fonctionné comme une famille de polices, donc ça marchera pour moi. – JonathanPeel

Répondre

0

Le problème était mon FontFamily. Je ne pouvais pas trouver beaucoup d'informations sur la façon dont la famille de polices doit être nommé, mais "Consolas" a fonctionné.

code final:

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"); 
        } 
       }; 
      } 
     } 
Questions connexes