Dimensione font

di il
9 risposte

Dimensione font

Salve,
c'è un modo per ridimensionare la dimensione del font, in base alla grandezza del contenitore.

tipo un FontAutoResize.
Ho provato a fare qualche ricerca, ma se non ho capito male, non esiste una classe che fa ciò.

9 Risposte

  • Re: Dimensione font

    Curiosa domanda. Ti rispondo in base alla mia esperienza (scarsa) di HTML. Quindi perdonami se dirò degli sfondoni...
    Prendiamo in considerazione un DIV che è un contenitore. Per didimensionare il font con questa ipotetica regola "FontAutoResize" come fa a decidere il sistema di rendering se mandare a capo o no il paragraph? Devo diriti però che la tua proposte è davvero curiosa perché in effetti è un problema con il quale in HTML mi sono scontrato pure io. Diciamo che per me è un incubo con il quale mi scontro quando sviluppo siti "Responsive"... Bell'idea!
  • Re: Dimensione font

    Io diciamo che una soluzione parziale c'è l'avrei, anche se non mi piace, e ora non ho le competenze per farlo.
    Bisognerebbe forse giocare con le proporzioni e darsi di range, mi spiego meglio:

    Se contenitore.width <= 200 and < 500 then
    font=20
    else
    .........


    idem per height
    ma non so, mi sembra una follia fare una cosa del genere.....
  • Re: Dimensione font

    Ogni font ha un suo "passo", per cui la stessa stringa con font diversi che hanno dimensioni identiche restituiscono a schermo dimensioni diverse.
    Se la stringa la disegni nell'evento paint del contenitore, prima di uare DrawString, usa MeasureString, che restituisce la dimensione in pixel dell'altezza e della lunghezza della stringa disegnata.
    Con tale misura saprai quando la stringa entra nel box assegnato.
    Per esempio, metti MeasureString in un loop dove incrementi la dimensione del font di 1, finquando la lunghezza della stringa soddisfa la lunghezza del controllo.
    Meglio creare una Bitmap in ram della dimensione voluta ed eseguire il controllo della stringa con MeasureString usando la Bitmap, finquando non eccede la dimensione cercata.
    Se non hai mai lavorato con il Paint o Graphics, quello che ho detto ti sembrerà oscuro, se serve ti faccio un esempio.

    Aggiungo che ci potrebbe essere anche un sistema più diretto ma al momento non ho altre idee.
  • Re: Dimensione font

    Grazie mille della spiegazione Rubik, come immaginavo, avevo capito che bisognava agire su paint, graphics ecc... (campo in cui non mi sono ancora addentrato, per questo prima ho scritto che per ora mi mancano le conoscenze .
    Io oggi pomeriggio provo a darci un occhiata, e vi aggiono, al massimo se c'è qualcosa che non capisco vi chiedo .
    Graie mille ancora, vi tengo aggiornati
  • Re: Dimensione font

    Quando avrai studiato Graphics, potrai ottenere la dimensione del font che si adatta al resize dell'area di scrittura.
    resizefont.gif
    resizefont.gif

    Oppure la dimensione del font cambia in base alla lunghezza del testo.
    fontdinamico.gif
    fontdinamico.gif

  • Re: Dimensione font

    Wow interessante... grande Rubik... hai sollecitatoil nostro interesse... Io però sono un ignorante di quelli con la "I" maiuscola. Mi aiuti a capire di cosa si tratta? E' un software di sviluppo o un linguaggio di codifica? Aiuta un povero programmatore allo sbando!
  • Re: Dimensione font

    Giocar999 ha scritto:


    Wow interessante... grande Rubik... hai sollecitatoil nostro interesse... Io però sono un ignorante di quelli con la "I" maiuscola. Mi aiuti a capire di cosa si tratta? E' un software di sviluppo o un linguaggio di codifica? Aiuta un povero programmatore allo sbando!
    Qui sei nel forum di VB.Net, quello che vedi nelle anigif è il risultato di 20 righe di codice VB.Net, che mettono in pratica quanto ho già spiegato 3 post fa.
    Sono felice di aiutare "un povero programmatore allo sbando", ma prima devo sapere a che livello vuoi la spiegazione, cosa sai fare?, o cosa non hai capito della spiegazione?
  • Re: Dimensione font

    Confermo sono un idiota. In reatà avevo confuso il post e pensavo si trattasse di un disquisizione generica e l'avevo pensata anche in "ambiente"... web... che per altro per me è un problmea piuttosto frequente... VB? Non sono ferrato! E non sarebbe di mio interesse. Però forse mi interessa la soluzione "logica" più che il dettaglio di codice... Scusate sono arrivato alla frutta!
  • Re: Dimensione font

    Giocar999 ha scritto:


    Però forse mi interessa la soluzione "logica" più che il dettaglio di codice...
    Be il codice fa una cosa semplice, i dati di partenza sono la dimensione orizzontale dello spazio dove si vuole scrivere e la stringa che deve essere scritta.
    1) Creo un rettangolo immaginario di una larghezza almeno doppia dello spazio reale a disposizione
    2) con l'istruzione MeasureString testo la stringa nel rettangolo immaginario usando il font e lo stile scelto ma di dimensione 1
    3) controllo se la stringa disegnata eccede la dimensione finale voluta
    4) se non eccede ritesto con la dimensione del font 2, 3, 4, 5, 6, ecc ecc
    5) quando la dimensione eccede, decremento la dimensione del font di 1 (la dimensione che andava bene ed era entrocontenuta)
    6) disegno realmente la stringa con la dimensione trovata nello spazio che vede l'utente.

    Una cosa del genere quando si programma un sito web è sicuramente inutile, poichè esistono controlli e routine già pronte all'uso.
    Prova a postare la domanda nella sezione dove si parla dei linguaggi che conosci, rivolti al web .
Devi accedere o registrarti per scrivere nel forum
9 risposte