Prima di tutto, domanda How to measure width of character precisely?
a cui viene data risposta, non è di grande aiuto per questo caso, quindi non si tratta di un duplicato di quello.come misurare con precisione la larghezza di una stringa?
Ho una stringa. Disegno utilizzando graphics.DrawString
, tuttavia quando ho bisogno di metterne un altro dopo, ho bisogno di conoscere la larghezza precisa della stringa precedente.
Per questo uso graphics.MeasureString con:
StringFormat format = new StringFormat(StringFormat.GenericTypographic);
format.Alignment = StringAlignment.Center;
format.Trimming = StringTrimming.None;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
Ho provato molte altre funzioni, come TextRendered.MeasureText
tuttavia tutti loro sicuro, con tutte le possibili combinazioni di parametri.
la combinazione menzionata di MeasureString è la più vicina a ciò di cui ho bisogno (funziona nella maggior parte dei casi, ad eccezione di caratteri speciali), tuttavia l'utilizzo di caratteri come # lo interrompe. La larghezza è più breve o più lunga.
C'è un modo per ottenere una dimensione precisa del testo prodotta dalla funzione DrawString? In che modo DrawString calcola la dimensione dell'area di disegno? Deve essere chiaramente un'altra funzione perché le dimensioni differiscono sempre.
Il codice sorgente di tutta l'applicazione è qui https://gitorious.org/pidgeon/pidgeon-main/ (File dove lavoro con questo, è https://gitorious.org/pidgeon/pidgeon-main/blobs/master/scrollback/SBABox.cs)
possibile duplicato ([Come misurare la larghezza in pixel della stringa drawed su Drawing.Bitmap in .NET?] http://stackoverflow.com/questions/2555739/how-to-measure-the-pixel-width-of-the-string-drawed-over-drawing-bitmap-in-net) –
se la domanda chiaramente non ha detto MeasureString non funziona, sarebbe duplicato – Petr
Senza una descrizione migliore di come e quando "non funziona" e il codice che include MeasureString e DrawString insieme, questa non è una vera domanda. Vieni con una piccola testina. –