弹出窗口中的wp7弹出窗口阻止文本框

时间:2012-02-18 16:54:07

标签: silverlight windows-phone-7

我有一个弹出窗口在MainPage上打开,带有几个文本框。当您专注于下方文本框时,键盘会遮挡视图。通常文本框会滑入视图。我不知道为什么不会发生这种情况。

请帮忙!

<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 :(得分:0)

从用户体验的角度来看,我强烈建议不要让任何部分弹出/覆盖有超过1或2个按钮。它只是没有在WP7中完成。如果您有一个表格,您希望人们填写将其移至自己的页面。通过让用户导航到该页面,或者通过在当前页面之前引入新的瞬态页面(无法导航回来)。

除了带有表单覆盖的屏幕键盘外,您还会遇到更多问题。您需要将AppBar更改为具有“V”和“X”按钮以进行任何数据输入,您需要管理焦点而不是重新滑入覆盖/弹出窗口,您需要确保“返回” “按钮关闭弹出窗口等

IMO最好的方法是简单而一致的用户体验。