estoy trabajando en una aplicación que incluye un formulario de registro. El formulario contiene varios cuadros de entrada de texto, por lo que se utiliza un ScrollViewer para permitir que todos se muestren en una página.ScrollViewer y SIP Edición (WP7.5 Mango)
El siguiente es un ejemplo simplificada del código XAML que estoy utilizando:
<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>
(Tenga en cuenta que la ScrollViewer está dentro de una celda de la cuadrícula, lo que significa que el panel de título debe permanecer en pantalla a todo momento)
El desplazamiento funciona perfectamente bien, así que no es un problema. Sin embargo, cuando el usuario selecciona un cuadro de texto para ingresar datos (es decir, se abre el teclado virtual), el sistema empuja el contenido de toda la página (incluido el panel de título de registro), lo que no es un comportamiento esperado. [Ver la aplicación People en Windows Phone e intente agregar un nuevo contacto. Este contiene una estructura similar, pero el ScrollViewer comporta correctamente sólo empujar el contenido en el ScrollViewer arriba]
casos de prueba
- Seleccionar un cuadro de texto que es visible en la parte superior de la pantalla, para abrir el teclado.
- Intenta desplazarte hasta la parte inferior de la página con el teclado abierto.
- No se puede acceder a los elementos en la parte inferior de la página.
o
- Seleccione un cuadro de texto que es visible en la parte inferior de la pantalla.
- Se empuja hacia arriba el contenido de la página completa.
- Intenta desplazarte hacia la parte superior de la página con el teclado abierto.
- los artículos en la parte superior de la página son inalcanzables, y el panel de título nunca regresa a la vista hasta que el teclado está cerrado.
Cualquier ayuda para resolver este problema sería apreciada. Gracias.
La siguiente publicación de blog podría ser un buen punto de partida para resolver esto: http://sorokoletov.com/2011/08/windows-phone-70-handling-text-entry-screens/ –
@PaulDiston Gracias. He leído este blog antes. Probé la aplicación de demostración y no es lo que estoy buscando. La transición es muy abrupta (es decir, el panel del título vuelve a aparecer cuando finaliza la animación SIP), sin mencionar que la implementación es excesiva para algo tan simple. Mi implementación prevista es para que coincida con los formularios de detalles de contacto que se encuentran en la aplicación "Personas" que se incluye en Windows Phone 7 para administrar contactos y direcciones. Este no es un ejemplo complicado, y uno esperaría que esto salga de la caja y no cubra los artículos en el formulario. –
Pruebe esto también si puede ayudar con el problema de desplazamiento. http://www.luisleo.net/2012/06/24/how-to-use-listbox-properly-with-windows-phone-7/ –