Sto lavorando a un'applicazione che include un modulo di registrazione. Il modulo contiene più caselle di immissione testo, quindi viene utilizzato un ScrollViewer per consentire a tutti di essere visualizzati su un'unica pagina.Scrollviewer & SIP Issue (WP7.5 Mango)
Il seguente è un esempio ridotta del codice XAML che sto usando:
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle" Text="SCROLLVIEWER TEST" Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="registration" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
<ScrollViewer Grid.Row="1">
<StackPanel>
<TextBlock Text="Hello" Margin="12,0,0,0"/>
<TextBox />
<TextBlock Text="Hello1" Margin="12,0,0,0"/>
<TextBox />
<TextBlock Text="Hello2" Margin="12,0,0,0"/>
<TextBox />
<TextBlock Text="Hello3" Margin="12,0,0,0"/>
<TextBox />
<TextBlock Text="Hello4" Margin="12,0,0,0"/>
<TextBox />
<TextBlock Text="Hello5" Margin="12,0,0,0"/>
<TextBox />
<TextBlock Text="Hello6" Margin="12,0,0,0"/>
<TextBox />
<TextBlock Text="Hello7" Margin="12,0,0,0"/>
<TextBox />
<TextBlock Text="Hello8" Margin="12,0,0,0"/>
<TextBox />
<TextBlock Text="END" Margin="12,0,0,0"/>
<TextBox />
</StackPanel>
</ScrollViewer>
</Grid>
(Si noti che lo ScrollViewer è all'interno di una cella della griglia, il che significa che il pannello titolo dovrebbe rimanere su schermo in ogni momento)
Lo scorrimento funziona perfettamente, quindi non è un problema. Tuttavia, quando l'utente seleziona un TextBox per immettere dati (ad esempio, la tastiera virtuale si apre), il sistema spinge il contenuto dell'intera pagina (incluso il pannello del titolo di registrazione), il che non è un comportamento previsto. [Vedere l'app Persone su Windows Phone e provare ad aggiungere un nuovo contatto. Questo contiene una struttura simile, ma lo ScrollViewer si comporta correttamente solo spingendo contenuti nel ScrollViewer up]
Test Cases
- Selezionare un TextBox che è visibile nella parte superiore dello schermo, per aprire il tastiera.
- Tenta di scorrere fino alla fine della pagina con la tastiera aperta.
- Gli articoli nella parte inferiore della pagina non sono raggiungibili.
o
- Selezionare un TextBox che è visibile nella parte inferiore dello schermo.
- Il contenuto di tutta la pagina viene inserito.
- Tentativo di scorrere fino all'inizio della pagina con la tastiera aperta.
- Gli elementi nella parte superiore della pagina non sono raggiungibili e il pannello del titolo non torna mai in vista finché la tastiera non viene chiusa.
Qualsiasi aiuto per la risoluzione di questo problema sarebbe apprezzato. Grazie.
Il seguente post del blog potrebbe essere un buon punto di partenza per risolvere questo: http://sorokoletov.com/2011/08/windows-phone-70-handling-text-entry-screens/ –
@PaulDiston Grazie. Ho letto questo blog prima. Ho provato l'app demo e non è quello che sto cercando. La transizione è molto brusca (il pannello del titolo appare nuovamente al termine dell'animazione SIP), per non parlare del fatto che l'implementazione è eccessiva per qualcosa di così semplice. La mia implementazione prevista è quella dei moduli dei dettagli di contatto che trovi nell'app "Persone" inclusa in Windows Phone 7 per la gestione di contatti e indirizzi. Questo non è un esempio complicato, e ci si aspetterebbe che funzionasse fuori dagli schemi e non riguardasse gli elementi nel modulo. –
Prova anche questo se può aiutare con il problema di scorrimento. http://www.luisleo.net/2012/06/24/how-to-use-listbox-properly-with-windows-phone-7/ –