Я работаю над приложением, которое включает регистрационную форму. Форма содержит несколько полей для ввода текста, поэтому для отображения их всех на одной странице используется ScrollViewer.
Ниже приведен урезанный пример кода XAML, который я использую.:
<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>
(Обратите внимание, что ScrollViewer находится внутри ячейки сетки, а это означает, что панель заголовка всегда должна оставаться на экране)
Прокрутка работает отлично, так что это не проблема. Однако, когда пользователь выбирает текстовое поле для ввода данных (, т. е. открывается экранная клавиатура ), система перемещает содержимое всей страницы вокруг (, включая панель заголовка регистрации ), что не является ожидаемым поведением.. [См. приложение «Люди» на Windows Phone и попробуйте добавить новый контакт. Он содержит аналогичную структуру, но ScrollViewer ведет себя правильно, только перемещая содержимое в окне прокрутки вверх]
Тестовые случаи
или
Будем признательны за любую помощь в решении этой проблемы. Спасибо.