2013-10-03 12 views
9

Desidero creare un elemento dell'interfaccia utente che si comporta in modo simile alla casella di testo di input dell'app WP SMS nativo.Casella di testo multi linea Windows Phone

In sostanza si dovrebbe

  • inizio come una casella di testo singola linea
  • quando il mio testo raggiunge la fine della prima linea, dovrebbe espandere la linea fino a comprendere lo
  • questo deve andare a un'altezza massima di 5 riga (dove una linea = valore di altezza della casella di testo)
  • una volta il mio testo richiede più di 5 linee, dovrebbe comparire la casella di testo dovrebbe fermarsi in espansione e una barra di scorrimento verticale

Qualche suggerimento su come posso farlo? Preferisco non usare gli eventi per vedere quanto testo ho inserito ed espandere/comprimere la casella di testo in base a quella, o creare un nuovo elemento dell'interfaccia utente da zero.

Se è utile, ho accesso ai controlli RAD di Telerik per Windows Phone (RadTextBox).

risposta

20

Hai provato a utilizzare la proprietà FrameworkElement.MaxHeight? Il markup sarebbe simile a:

<TextBox TextWrapping="Wrap" AcceptsReturn="True" MaxHeight="200" /> 

Il valore indicato per l'altezza massima è semplicemente un esempio e potrebbe non soddisfare le vostre esigenze specifiche.

Nota: come indicato nei commenti seguenti, assicurarsi di rimuovere qualsiasi valore specificato per Altezza. La dichiarazione limiterà l'elemento a quell'altezza in ogni momento.

+0

Non modifica l'altezza effettiva dell'elemento, indipendentemente dal numero di caratteri immessi, la casella di testo viene ancora visualizzata come una casella di testo a una riga. – drl

+2

@drl Assicurarsi di non avere un valore specificato per Altezza. Ciò limiterà l'elemento a quell'altezza in ogni momento. Test con un valore MaxHeight pari a 200 dato che si tratta di circa cinque righe. – lsuarez

+0

Ha funzionato perfettamente quando ho estratto l'altezza esplicita! Funziona anche a restringere la casella di testo quando sto eliminando il testo. Davvero grazie! – drl