In Windows Phone 7 non è così semplice creare una TextBox che possa contenere il testo che vada oltre l'altezza del controllo. In pratica non si ottinene uno scorrimento automatico verso l'altro del testo già inserito.

Cercando in rete ho trovato la soluzione al problema:

XML

<ScrollViewer x:Name="scvDescription" Grid.Row="0" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" >
    <TextBox x:Name="tbxDescription" FontSize="{StaticResource PhoneFontSizeMedium}" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Disabled"
        TextWrapping="Wrap"
        AcceptsReturn="True" 
        TextInputStart="tbxDescription_TextInputStart" />
</ScrollViewer>
Inserisci la TextBox in un controllo ScrollViewer. Successivamente imposta le proprietà, della TextBox, TextWrapping, che permette al testo di andare su più righe e AcceptsReturn che permette di andare a capo su una nuova linea.

Penso a causa di un bug questo non è sufficiente, per avere una gestione corretta dello scrolling bisogna aggiungere un pezzo di codice, va gestiro l'evento TextInputStart:

C#

private void tbxDescription_TextInputStart(object sender, TextCompositionEventArgs e)
{
    //per correggere il problema di scrolling della textbox
    TextBox tbx = (TextBox)sender;
    this.scvDescription.UpdateLayout();
    this.scvDescription.ScrollToVerticalOffset(tbx.ActualHeight);
}
Tags:
Esempi224 Silverlight7 Windows Phone 710 XAML2
Potrebbe interessarti anche: