2012-02-18 130 views
0

我有一個彈出窗口,在MainPage上打開幾個文本框。當您將注意力集中在較低的文本框時,鍵盤會將其遮擋住。通常文本框滑入視圖。我不知道爲什麼這裏沒有發生。wp7彈出窗口阻止彈出文本框

請幫忙!

<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> 

,這裏是打開它的代碼:從UX看來,我會大力推薦反對任何有部分彈出/覆蓋有

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; 

回答

0

超過1或2鈕釦。這只是在WP7中沒有完成。如果你有一個表格,你希望人們填寫它,把它移到它自己的頁面。通過讓用戶導航到該頁面,或者通過在當前頁面之前引入一個新的暫時頁面(無法導航回)。

您將遇到更多問題,而不僅僅是屏幕鍵盤中的表單疊加。您需要將AppBar更改爲具有用於任何數據輸入的「V」和「X」按鈕,您需要管理焦點不會滑入覆蓋/彈出窗口中,您需要確保「後退「按鈕關閉彈出窗口等。

IMO最好的方法是一個簡單而一致的用戶體驗。

+0

我明白你的觀點。但導航到另一個頁面,以改變一個對象的名稱和描述看起來像矯枉過正。我已經處理了所有其他條件。如果我導航到另一個頁面,那麼我不得不擔心將需要的對象和值傳遞給該頁面,再加上當我回來時,我必須確保顯示正確的信息。也許這是我唯一的選擇,但似乎有點荒謬。 – prak 2012-02-18 23:39:53

+0

這就是People Hub爲重命名聯繫人所做的事,辦公室就是這樣做的,這就是其他所有事情所做的。如果您是開發人員,請不要在提供適當UX用戶注意的情況下在Metro中「創新」。除非您已將您的意見置於地鐵設計語言原則之中,否則應爭取與其他應用程序和操作系統保持一致。用戶會因爲未能設計Metroesque應用程序而降低您的應用程序。只是我的0.02美元。 – JustinAngel 2012-02-19 00:11:18

+0

我已經通過了地鐵指導方針,而且我所做的與人羣中心和其他應用程序所做的不同。我不是「創新」任何我使用的內置控制器。不相信我?這裏是來自指南的剪輯「對於臨時UI,例如登錄屏幕,您可以使用Silverlight Popup控件...」http://msdn.microsoft.com/en-us/library/hh202911%28v=vs .92%29.aspx ...無論如何,我能夠通過在xaml中創建而不是在後面的代碼來使鍵盤正常工作。 – prak 2012-02-19 03:00:26