wp7 всплывающее окно блокировки всплывающих окон - PullRequest
0 голосов
/ 18 февраля 2012

У меня есть всплывающее окно, которое открывается на главной странице с парой текстовых полей. Когда вы фокусируетесь на нижнем текстовом поле, клавиатура скрывает его от глаз. Обычно текстовые поля скользят в поле зрения. я не знаю, почему этого здесь не происходит.

пожалуйста, помогите!

<UserControl x:Class="Controls.EditControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:SampleData="clr-namespace:SampleData" 
mc:Ignorable="d"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
Height="800" Width="480"
d:DataContext="{d:DesignData ../SampleData/sampleEditPopup.xaml}">

<Grid x:Name="LayoutRoot" Background="#FF000000" Opacity="0.995">
    <StackPanel Margin="0,20,0,0" Orientation="Horizontal" VerticalAlignment="Top">
        <TextBlock TextWrapping="Wrap" Text="Name" HorizontalAlignment="Left" Height="26" Margin="15,10,0,10" Width="110" TextAlignment="Right"/>
        <TextBox x:Name="tb_name" 
            TextWrapping="Wrap" 
            Width="340" Height="75"
            Margin="10,13,15,12"
            InputScope="Text" MaxLength="1000" 
            Text="{Binding Title, Mode=TwoWay}"/>
    </StackPanel>
    <StackPanel Orientation="Horizontal" Margin="0,150,0,0" VerticalAlignment="Top">
        <TextBlock TextWrapping="Wrap" Text="Description" HorizontalAlignment="Left" Height="26" Margin="15,40,0,10" Width="110" VerticalAlignment="Top" TextAlignment="Right"/>
        <TextBox x:Name="tb_description" 
            TextWrapping="Wrap" 
            Width="340" Height="254" 
            Margin="10,13,15,12"
            InputScope="Text" MaxLength="1000" 
            Text="{Binding Description, Mode=TwoWay}"/>
    </StackPanel>
</Grid>

и вот код, чтобы открыть его:

EditControl ec = new EditControl();
ec.Title = cm.Title;
ec.Description = cm.Description;

//sets appbar icons for accepting values
setEditIcons();

Popup edit = new Popup() { Child = ec, Tag = this };
edit.Closed += new EventHandler(edit_Closed);
edit.IsOpen = true;

1 Ответ

0 голосов
/ 18 февраля 2012

с точки зрения UX, я бы настоятельно рекомендовал не иметь каких-либо частичных всплывающих окон / оверлеев, которые имеют более 1 или 2 кнопок.Это просто не сделано в WP7.Если у вас есть форма, которую вы хотите заполнить, переместите ее на свою страницу.Либо позволив пользователю перейти на эту страницу, либо введя новую переходную страницу (на которую нельзя перейти назад) до текущей страницы.

У вас будет больше проблем, чем с экранной клавиатурой с оверлеями формы.Вам нужно изменить панель приложений, чтобы иметь кнопки «V» и «X» для любого ввода данных, вам нужно будет управлять фокусировкой, не скользя обратно под наложение / всплывающее окно, вам нужно убедиться, что «назад»кнопка "закрывает всплывающее окно и т. д.

IMO. Лучший подход - это простой и последовательный UX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...