2014-06-23 19 views
1

我是Windows應用程序編程的新手。我想在用戶按下返回鍵後捕捉TextBox的輸入。我不斷收到錯誤「The name'Key'在當前上下文中不存在。」我添加了'使用System.Windows.Input;'但我仍然得到同樣的錯誤。我錯過了什麼?當前上下文中不存在名稱'Key'

using App1.Common; 
using System; 
using System.Windows.Input; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Runtime.InteropServices.WindowsRuntime; 
using Windows.Foundation; 
using Windows.Foundation.Collections; 
using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 
using Windows.UI.Xaml.Controls.Primitives; 
using Windows.UI.Xaml.Data; 
using Windows.UI.Xaml.Input; 
using Windows.UI.Xaml.Media; 
using Windows.UI.Xaml.Navigation; 

// The Basic Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234237 

namespace App1 
{ 
    /// <summary> 
    /// A basic page that provides characteristics common to most applications. 
    /// </summary> 
    public sealed partial class MainPage : Page 
    { 
     private NavigationHelper navigationHelper; 
     private ObservableDictionary defaultViewModel = new ObservableDictionary(); 

     /// <summary> 
     /// This can be changed to a strongly typed view model. 
     /// </summary> 
     public ObservableDictionary DefaultViewModel 
     { 
      get { return this.defaultViewModel; } 
     } 

     /// <summary> 
     /// NavigationHelper is used on each page to aid in navigation and 
     /// process lifetime management 
     /// </summary> 
     public NavigationHelper NavigationHelper 
     { 
      get { return this.navigationHelper; } 
     } 


     public MainPage() 
     { 
      this.InitializeComponent(); 
      this.navigationHelper = new NavigationHelper(this); 
      this.navigationHelper.LoadState += navigationHelper_LoadState; 
      this.navigationHelper.SaveState += navigationHelper_SaveState; 
     } 

     /// <summary> 
     /// Populates the page with content passed during navigation. Any saved state is also 
     /// provided when recreating a page from a prior session. 
     /// </summary> 
     /// <param name="sender"> 
     /// The source of the event; typically <see cref="NavigationHelper"/> 
     /// </param> 
     /// <param name="e">Event data that provides both the navigation parameter passed to 
     /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested and 
     /// a dictionary of state preserved by this page during an earlier 
     /// session. The state will be null the first time a page is visited.</param> 
     private void navigationHelper_LoadState(object sender, LoadStateEventArgs e) 
     { 
     } 

     /// <summary> 
     /// Preserves state associated with this page in case the application is suspended or the 
     /// page is discarded from the navigation cache. Values must conform to the serialization 
     /// requirements of <see cref="SuspensionManager.SessionState"/>. 
     /// </summary> 
     /// <param name="sender">The source of the event; typically <see cref="NavigationHelper"/></param> 
     /// <param name="e">Event data that provides an empty dictionary to be populated with 
     /// serializable state.</param> 
     private void navigationHelper_SaveState(object sender, SaveStateEventArgs e) 
     { 
     } 

     #region NavigationHelper registration 

     /// The methods provided in this section are simply used to allow 
     /// NavigationHelper to respond to the page's navigation methods. 
     /// 
     /// Page specific logic should be placed in event handlers for the 
     /// <see cref="GridCS.Common.NavigationHelper.LoadState"/> 
     /// and <see cref="GridCS.Common.NavigationHelper.SaveState"/>. 
     /// The navigation parameter is available in the LoadState method 
     /// in addition to page state preserved during an earlier session. 

     protected override void OnNavigatedTo(NavigationEventArgs e) 
     { 
      navigationHelper.OnNavigatedTo(e); 
     } 

     protected override void OnNavigatedFrom(NavigationEventArgs e) 
     { 
      navigationHelper.OnNavigatedFrom(e); 
     } 

     #endregion 

     private void Button_click(object sender, RoutedEventArgs e) 
     { 
      greetingOutput.Text = "Hello, " + nameInput.Text + "!"; 
     } 

     private void item1_KeyDown(object sender, KeyRoutedEventArgs e) 
     { 
      if (e.Key == Key.Return) 
      { 

      } 
     } 

    } 
} 

回答

1

如果你看一看上KeyRoutedEventArgs MSDN庫文章中,你將看到Key屬性是VirtualKey枚舉。縱觀枚舉可沒有一個返回但有一個輸入

進入|進入13 Enter鍵。

,並期待在第一個鏈接的例子,你會想是這樣的

if (e.Key == Windows.System.VirtualKey.Enter) 
{ 
    .... 
} 
+0

感謝這個工作! –

+0

歡迎您,很高興有所幫助 –

0

而不是使用KeyRoutedEventArgs的,請嘗試使用KeyPressEventArgs和使用這樣的:

private void item1_KeyDown(object sender, KeyPressEventArgs e) 
    { 
     if (e.KeyCode == Keys.Return) 
     { 

     } 
    } 
相關問題