Scrollviewer и SIP Issue (WP7.5 Mango)

Я работаю над приложением, которое включает регистрационную форму. Форма содержит несколько полей для ввода текста, поэтому для отображения их всех на одной странице используется 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 ведет себя правильно, только перемещая содержимое в окне прокрутки вверх]

Тестовые случаи

  • Выберите текстовое поле, которое отображается в верхней части экрана, чтобы открыть клавиатуру.
  • Попытка прокрутить страницу вниз с открытой клавиатурой.
  • Элементы внизу страницы недоступны.

или

  • Выберите текстовое поле, которое отображается в нижней части экрана.
  • Содержимое всей страницы выталкивается вверх.
  • Попытка прокрутить страницу вверх с открытой клавиатурой.
  • Элементы в верхней части страницы недоступны, и панель заголовка никогда не возвращается в поле зрения, пока клавиатура не будет закрыта.

Будем признательны за любую помощь в решении этой проблемы. Спасибо.

10
задан Jason H 2 May 2012 в 10:49
поделиться