Просмотреть все элементы при открытии клавиатуры — Windows 10 Mobile — XAML — C#

Я разрабатываю страницу, и у меня есть некоторые сомнения. Мой проект для Windows 10 Mobile. На странице, которую я разрабатываю, когда текстовое поле имеет фокус, клавиатура мобильного телефона поднимается, и я получаю остальные скрытые элементы, и не позволяет мне прокручивать страницу, чтобы увидеть все элементы.

Я пошел делать в Интернете, но я увидел, что решения зависят от обеспечения большего размера для моей StackPanel, чем для моего ScrollViewer, но мне это тоже не нужно. например Ширина ScrollViewer = 500 ... Ширина StackPanel = 700

При включенной клавиатуре можно видеть все элементы, делая прокрутку.

Следует моему коду:

    <ScrollViewer x:Name="ScrollViewerTest VerticalAlignment="Top">
            <StackPanel Orientation="Vertical" Margin="10,10,10,10">

                    <TextBox x:Name="txtUserNameMobile" IsSpellCheckEnabled="False" 
                             Background="Black" Foreground="White"
                             PlaceholderText="Insert your text"
                             />

                    <Button x:Name="btnHere" 
                            Content="btnHere" 
                            Height="48"
                            Width="150">

                    <Button x:Name="btnHere2" 
                            Content="btnHere2" 
                            Height="48"
                            Width="150">

                    <Button x:Name="btnHere3" 
                            Content="btnHere3" 
                            Height="48"
                            Width="150">

                    <Button x:Name="btnHere4" 
                            Content="btnHere4" 
                            Height="48"
                            Width="150">

                     <Button x:Name="btnHere5" 
                            Content="btnHere5" 
                            Height="48"
                            Width="150">
        </StackPanel>
</ScrollViewer>

Кто-нибудь может мне помочь?


person fipcurren88    schedule 21.10.2015    source источник


Ответы (1)


Поведение прокрутки страницы по умолчанию в фокусе TextBox можно переопределить, а пользовательскую логику можно добавить для отображения фокуса TextBox при отображении клавиатуры. Используя этот метод, можно заставить ScrollViewer прокручиваться, когда клавиатура открыта.

InputPane.GetForCurrentView().Showing += InputPane_Showing;

private void InputPane_Showing(InputPane sender, InputPaneVisibilityEventArgs args)
        {
             args.EnsuredFocusedElementInView = true; //This will prevent the auto scroll of the page.
        }

args.OccludedRect даст свойства, связанные с клавиатурой, такие как высота, верхнее положение и т. д. Эти значения можно использовать для перемещения TextBox в нужное положение, если оно скрыто за клавиатурой.

person Bells    schedule 22.10.2015
comment
Привет @Bells. Не решить мою проблему, но я только что исправил сегодня утром через размер клавиатуры, могу сделать мой scrollviwer и мою сетку разного размера, вычитая значение из видимой клавиатуры. Спасибо, в любом случае - person fipcurren88; 22.10.2015