none
Cambiare impostazioni su labelvia code behind RRS feed

  • Domanda

  • Ho la necessità di modificare le proprietà di una label via code behind.

    Cerco di spiegarmi meglio.

    Quando creo la form i vari controlli vengono creati con i valori di default.Per fare un esempio concreto creo una textbox preceduta da una label che ne dettaglia il senso.

    Ho la necessità di modificare le proprietà (fontStyle / Fontweight / FontFamily e altre eventualmente) da un controllo del valore della textbox.

    Esempio se la textbox è vuota  ----> impostare il colore della label a Rosso / Bold

    se la textbox ha valore tra 0 e 100 label Blu / Italic e font cupertino

    se supera i 100 label verde / Normal / Font MS Times Roman.

    Ovviamente prima delle modifiche dovrei impostare la label ai valori standard.

    Spero di essere stato chiaro nell'esposizione del problema.

    Grazie

    Moreno

    giovedì 2 febbraio 2017 11:06

Risposte

Tutte le risposte

  • Ciao,

    qui trovi un po' di esempio su come manipolare la textbox e simili sia da codice che da xaml

    http://www.c-sharpcorner.com/uploadfile/mahesh/wpf-textbox/

    Ciao

    Alessio

    giovedì 2 febbraio 2017 11:39
  • Per fare una cosa nel modo + semplice in WPF puoi anche utilizzare un converter che converte il valore del tuo campo numerico nel colore che vuoi o nell'attributo true o false del bold della font sul campo interessato.


    Sabrina C. - http://www.dotnetwork.it

    giovedì 2 febbraio 2017 12:25
  • Ciao Alessio

    Grazie per la cortese risposta.

    Ho guardato il link che mi hai proposto, ma non mi sembra di trovare nulla a riguardo.

    ti posto ciò che ho bisogno

    private void resettaStatoLabel() // imposto il carattere normale nero sulle label { this.LblCognome.FontWeight = ?????? //System.Dr ....... // FontWeight.ToString(). this.lblCognome.FontStyle = ???

    this.lblCognome.FontFamily = .....

    }

    In code behind devo impostare o recupere i valori di delle proprietà .FontWeight, .FontStyle, .FontFamily ecc in qmetodi come quello d'esempio.

    Ho guardato in MSDN "

    Mapping di proprietà di Windows Form e WPF

    e fa riferimento al seguente link https://msdn.microsoft.com/it-it/library/ms751565(v=vs.110).aspx a

    a System.Drawing.Font

    H pensato che inserendo nel mio progetto using a System.Drawing.Font di poter avere la possibilità di impostare i valori desiderati.

    Non vede questa libreria.

    Sto commettendo degli errori o come devo prcedere ?

    Grazie

    Moreno

    giovedì 2 febbraio 2017 13:43
  • Scusa Sabrina

    Mi dichiaro ampiamente carente, ma non ho capito nulla della tua soluzione.

    hai un esempio ?

    Grazie

    Moreno

    giovedì 2 febbraio 2017 13:44
  • Non ho un esempio sottomano, ma lo accodo all'altro esempio che devo fare stasera x il calcolo dei totali, così ho una scusa per rinviare al fine settimana la review degli articoli... so che sembro il puffo brontolone, ma cambiare sito ad un blog è davvero un lavoro sporco... :P

    a più tardi


    Sabrina C. - http://www.dotnetwork.it

    giovedì 2 febbraio 2017 14:14
  • Ciao

    per cambiarli ti basta fare qualcosa del tipo

    lbl.Font=new Font(FontFamily.GenericSansSerif,12.0F, FontStyle.Bold);

    e configuri tutto

    Ciao

    Alessio

    giovedì 2 febbraio 2017 14:18
  • Il formalismo che mi proponi non lo trovo.

    Ho pensato quindi di impostare le proprietà non come unica riga di codice, am in + righe, ma trovo valido solo FontFamily.  Dove trovo tutti i parametri da usarsi per FontFamily, fontWeight, fontStyle  dato che tra parentesi devo mettere il valore da impostare ?

    Secondo problema.

    Ovviamente prima di impostare le nuove proprietà voglio salvare su variabili i valori attuali che sono stati attribuiti a LblCognome. Ho fatto delle variabili di tipo string chiavate SaveFontStyle, SaveFontFamily, ecc su cui salvare la proprietà standard

    Come li salvo ?

    Grazie

    Moreno

    giovedì 2 febbraio 2017 14:54
  • Ciao

    scusa non riesci a creare un oggetto font?

    Qui trovi una descrizione dell'oggetto e vari esempi

    https://msdn.microsoft.com/en-us/library/system.drawing.font%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

    per quanto riguarda FontStyle è un'enumerazione, qui trovi tutti i dettagli

    https://msdn.microsoft.com/en-us/library/system.drawing.fontstyle(v=vs.110).aspx

    quindi devi usare qualcosa del tipo

    FontStyle.Bold

    e non puoi fare il new

    Ciao

    Alessio

    giovedì 2 febbraio 2017 15:00
  • scusami Alessio se sono pedante, ma come puoi vedere dallo screenshot che ti ho mandato anche prima e che ripropongo, su faccio  LblCognome.Font non riconosce .Font, ma le proprietà che vedi.

    Come faccio a farlo vedere l'oggetto Font ?

    manca quanceh Using ?

    NNon iesco pertanto a fare il codice che mi haidato e chevedo nei link.

    giovedì 2 febbraio 2017 15:59
  • Ops scusa ho sbagliato a consigliarti il font, ho confuso controllo.

    Devi quindi settare le singole proprietà in questo modo

    label.FontWeight = System.Windows.FontWeights.Bold;
    label.FontStyle = System.Windows.FontStyles.Italic;
    label.FontSize = 12;

    Ciao

    Alessio

    giovedì 2 febbraio 2017 16:06
  • Grazie Alessio

    Manca solo LblCognome.FontFamily = System.Windows.

    Non esiste System.Windows.FontFamily con il nome del font. Come posso impostarlo ?

    secondo problema.

    Volendo salvare le proprietà prima di forzarle devo fare prima una definizione di variabile e poi salvarla ?

    Esempio

    float currentSize; Definizine

    currentSize = Label1.Font.Size; salvataggio

    Che tipi di variabili devo usare ? Nn va bene string

    Terzo Problema.

    Se volessi impostare il coloreforeground del testo cosa devo mettere ?

    giovedì 2 febbraio 2017 16:14
  • Ciao,

    Come puoi vedere della definizione di fontfamily qui

    https://msdn.microsoft.com/en-us/library/system.windows.controls.control.fontfamily(v=vs.110).aspx

    puoi crearla con

    label.FontFamily = new FontFamily("Arial");

    per salvare le variabili devi dichiarle del tipo corretto quindi

    FontFamily currentFont;

    FontWeights currentWeights;

    FontStyles currentStyle;

    double currentSize;

    per il colore di sfondo invece

    label.Foreground = Brushes.Green;
    

    Ciao

    giovedì 2 febbraio 2017 16:34
  • Scusami, ma mi sento impedito

    mi da errore su fontWeights  e FontStyle  come da screenshot

    giovedì 2 febbraio 2017 16:48
  • devi dargli un valore iniziale

    FontWeights currentWeights = System.Windows.FontWeights.Bold;
    FontStyles currentStyle= System.Windows.FontStyles.Italic;

    giovedì 2 febbraio 2017 16:52
  • Come promesso ho predisposto un esempio per mostrarti come funzionano i Converter, con cui con molta semplicità e pochissimo codice puoi far reagire i controlli al valore di uno dei campi per cambiarne il colore o aggiungere dei segnali visivi.

    http://www.sabrinacosolo.com/introduzione-ai-converter/

    Saluti


    Sabrina C. - http://www.dotnetwork.it

    giovedì 2 febbraio 2017 22:47
  • Ciao

    Allal fine hai risolto?

    • Contrassegnato come risposta Misonsan sabato 4 febbraio 2017 09:47
    venerdì 3 febbraio 2017 11:40
  • Grazie Alessio

    Risolto

    sabato 4 febbraio 2017 09:48