Partager via


모다의 윈도우폰7 뚝딱 팩토리(13)-터치 스크린 위의 다양한 키보드

 

 

한국마이크로소프트에서 초급 스마트폰 개발자 분들을 위해 공개하는 모다의 윈도우폰7 뚝딱 팩토리 열세번째 영상!

윈도우폰의 하드웨어 표준안을 보면 풀 터치를 기본으로 하고 있고, 추가적으로 외장 하드웨어 키보드를 제조사가 추가할 수 있게 되어있습니다. 풀 터치 환경에서는 가상키보드(SIP: Soft Input Panel)를 터치스크린 위에 띄워서 입력을 받게 되는데요, 기본적으로는 Qwerty 자판 형식을 취하고 있지만 터치스크린의 장점을 십분 활용해서  각 상황에 맞게 커스터마이징 된 키보드가 제공됩니다.

예를들면 웹 서핑을 하는 경우에는 [.com] 이 들어간 변형 키보드가, 이메일을 보낼 때는, [@] 특수기호가 첫 화면에 뜨는 키보드가, 전화를 걸 때는 숫자만 올라오는 키보드가 사용자 편의성을 증대시키지요. 윈도우폰에서는 약 60여가지의 가상키보드 형태를 지원하고 있으며 개발자 분들이 여러 가지 중 하나를 선택해서 화면에 띄울 수 있도록 개발환경을 제공하고 있습니다. 예를 들어 이메일 입력을 위한 가상키보드 설정은 다음과 같이 할 수 있습니다.

 

    1:  textBox1.InputScope = new InputScope()
    2:  {
    3:        Names = {new InputScopeName() { NameValue = InputScopeNameValue.EmailSmtpAddress } }
    4:  };

 

구현 자체는 매우 간단하지만, 어플리케이션을 사용하는 입장에서는 정말 유용한 기능중의 하나입니다. 이런 요소들이 하나하나 모여서 사용자를 감동시키고 다른 어플리케이션과 차별화를 할 수 있는 것이지요.

 

    1:  using System;
    2:  using System.Collections.Generic;
    3:  using System.Linq;
    4:  using System.Net;
    5:  using System.Windows;
    6:  using System.Windows.Controls;
    7:  using System.Windows.Documents;
    8:  using System.Windows.Input;
    9:  using System.Windows.Media;
   10:  using System.Windows.Media.Animation;
   11:  using System.Windows.Shapes;
   12:  using Microsoft.Phone.Controls;
   13:   
   14:  namespace SIP_sample
   15:  {
   16:      public partial class MainPage : PhoneApplicationPage
   17:      {
   18:          // Constructor
   19:          public MainPage()
   20:          {
   21:              InitializeComponent();
   22:          }
   23:   
   24:          private void button1_Click(object sender, RoutedEventArgs e)
   25:          {
   26:              textBox1.InputScope = new InputScope()
   27:              {
   28:                  Names = {new InputScopeName() { NameValue = InputScopeNameValue.EmailSmtpAddress } }
   29:              };
   30:          }
   31:   
   32:          private void button2_Click(object sender, RoutedEventArgs e)
   33:          {
   34:              textBox1.InputScope = new InputScope()
   35:              {
   36:                  Names = { new InputScopeName() { NameValue = InputScopeNameValue.TelephoneNumber } }
   37:              };
   38:          }
   39:      }
   40:  }