Domanda

Ho un grafico in WPF con un sacco di etichette. Il testo su queste etichette è dinamicamente caricato e soggetti a modifiche. Se ho impostato la larghezza solo per auto, allora queste etichette possono sovrapporsi, che rende il testo illeggibile.

Il supporto grafico formati multipli, quindi se diventa più grande, quindi le barre sono ri dimensioni e non v'è più spazio per il testo. Ora voglio modificare il testo per lo spazio che è disponibile. Se diventa troppo piccolo, non voglio per visualizzare più l'etichetta (un tooltip è disponibile, in modo che l'utente ottiene ancora le informazioni richieste). Si consideri la stringa "Caso 1, bla bla", non v'è probabilmente abbastanza spazio per visualizzare l'intera stringa, ma solo la prima parola. In questo caso voglio la stringa di essere "Caso 1 ..", con .. indica che v'è qualche informazione in più nella descrizione.

è possibile determinare la lunghezza disponibile per la stringa. Ma come faccio a determinare lo spazio di una sola lettera ci vorrà? Naturalmente potrei anche appena ri dimensioni dell'etichetta, ma allora sarebbe appena tagliato la corda da nessuna parte che probabilmente non è utile per l'utente (e sembra brutto).

Tutte le idee?

È stato utile?

Soluzione

Se è possibile utilizzare TextBlocks anziché le etichette allora hanno un TextTrimming proprietà che farà questo per voi sia al personaggio più vicino o la parola più vicina.


Mentre lei sembra felice con la proprietà TextTrimming, Io modificare questo per aggiungere che il controllo TextBox ha una GetRectFromCharacterIndex metodo che permetterà di scoprire la dimensione sullo schermo di uno o più caratteri fino a quando le impostazioni di carattere abbinati l'etichetta. Questo potrebbe essere utile se si voleva tagliare in luoghi specifici in etichetta piuttosto che il carattere / parola più vicina.

Altri suggerimenti

Non è un esperto in WPF, ma penserei che avrete bisogno di fare questo nel codice, piuttosto che XAML.

Per iniziare, ottenendo la larghezza in pixel effettiva dello spazio disponibile per il testo. Poi guardate il set di caratteri, dot pitch ecc utilizzato sul front-end XAML e da lì calcolare la larghezza in pixel necessaria per carattere.

Si potrebbe anche guardare a cambiare il carattere dimensioni così come la riduzione della lunghezza dell'etichetta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top