Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C#] MeasureString, bello, ma come usarlo?

    Sto impazzendo, ho trovato che esiste un metodo degli oggetti Graphics che ti permette, dato un Font e il suo Size, di misurare la larghezza di una stringa.

    Si chiama MeasureString.

    Interessante, ma la domanda è: Ma come lo uso MeasureString?

    codice:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Drawing;
    
    namespace MisuraStringhe
    {
        class Program
        {
            static void Main(string[] args)
            {
                Graphics temp;
                System.Drawing.Font font = new System.Drawing.Font("Arial", 10);
                SizeF temp2 = temp.MeasureString("A", font);
            }
        }
    }
    Se provo a scrivere così, sbrocca perché temp non è istanziato, il problema è che Graphics non ha costruttori, allora come faccio a crerare un oggetto che sia Graphics e che mi permetta quindi di utilizzare il metodo (non static, che se almeno era static non mi serviva un oggetto )?

  2. #2
    Quel metodo ha senso solo su un'istanza di un oggetto Graphics, visto che la larghezza della visualizzazione di una stringa dipende da diverse proprietà di un oggetto Graphics, tra cui, ad esempio, la risoluzione della periferica o le eventuali trasformazioni applicate su di essa; la stessa unità in cui è espresso il valore restituito dipende dalle impostazioni dell'oggetto Graphics. Per ottenere un oggetto Graphics bisogna avere un qualcosa su cui disegnare (sia esso un form, una stampante, ...). Tu cosa vuoi fare esattamente?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Eh, la situazione è drammatica, devo applicare un testo su un file pdf, devo usare un oggetto che spara il testo o dentro una form o a coordinate, il problema è che un determinato testo lo vogliono centrato.

    La form pdf non è compatibilissima quindi l'unico sistema è le coordinate, ma a seconda del font utilizzato e delle dimensioni varia la grandezza, quindi non ho proprio la più pallida idea di come centrare la cosa.

    Oltretutto lo script va fatto in VB6 da console senza form , non C#, intanto volevo vedere se riuscivo a trovare un punto di forza tramite C#, poi in quelche modo me la cavavo, ma quà non vedo vie d'uscita...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Forse pensi (sbagliando) che una stringa abbia una "assoluta" dimensione (larghezza e altezza) che dipende solo dal font ...

    Ovviamente questo non e' vero in quanto dipende fortemente dal device su cui e' "disegnata" ... e' quindi "necessario" conoscere le caratteristiche di questo "device" e quindi avere un riferimento ad un oggetto.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    E' per quello che non ne vedevo la fine

    Però ho vinto, ho trovato online la guida ufficiale dell'oggetto che utilizziamo in ufficio (in questo ufficio sono soliti usare oggetti di cui non si sa nulla, solo poche funzioncine).

    Anche tempo addietro provai a cercarla inutilmente, stavolta invece mi ha detto bene

    Inutile dire che esiste un metodo che, una volta settati Font e Size, data una stringa ne restituisce la lunghezza nell'unità di misura usata dall'oggetto, a quel punto centrare le cose diventa una passeggiata.

    Uff...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.