情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone 8 のオンスクリーン キーボード入力スコープを変更する方法

2014/06/18

対象: Windows Phone 8 および Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

Windows Phone アプリケーションにテキスト ボックスなどのコントロールを使用する場合、ユーザーはオンスクリーン キーボードを使用してデータを入力します。ユーザーが入力するデータの種類によっては、既定のキーボードの入力スコープが最適ではない場合があります。オンスクリーン キーボードの入力スコープを、多数ある組み込みのオプションのいずれかに変更できます。キーボードの入力スコープを変更すると、ユーザーはアプリケーションでより容易かつ迅速にデータを入力できるようになります。

さまざまな組み込みキーボードのスクリーンショットについては、「Windows Phone 8 のオンスクリーン キーボードの入力スコープ インデックス」を参照してください。

各種キーボード オプションのすべてが含まれるサンプル アプリケーションをダウンロードするには、「キーボード インデックスのサンプル」を参照してください。

メモメモ:

スクリーン キーボードは、ソフトウェア ベースの入力パネル (SIP) とも呼ばれます。

このトピックは、次のセクションで構成されています。

入力スコープを変更するには、特定のコントロールに使用する入力スコープを指定します。入力スコープ オプションの一覧については、InputScopeNameValue を参照してください。この手順では、数値入力を受け付けるようにテキスト ボックスの入力スコープを変更します。この手順では、コントロールを含むページを持つ Windows Phone アプリケーションがあると仮定しています。

キーボードの入力スコープを変更するには

  1. ページの XAML ファイルで、変更するコントロールのタグを探します。たとえば、コントロールのタグは次のようなコードです。

    <TextBox Name="txtPhoneNumber" />
    
  2. InputScope 属性をタグに追加して、目的の値を指定します。たとえば、数値入力を指定するには、次のように記述します。

    <TextBox InputScope="Number" Name="txtPhoneNumber" />
    

IntelliSense を使用して、使用する入力スコープの名前を取得できます。 この手順では、新しいテキスト ボックスを追加して、さまざまな入力スコープのオプションをテストします。この手順では、コントロールを追加できるページが含まれる Windows Phone アプリケーションがあることを前提としています。

キーボードの入力スコープのオプションをテストするには

  1. ページの XAML ファイルで、次のコードを追加します。

    <TextBox Name="txtPhoneNumber" >
        <TextBox.InputScope>
            <InputScope>
                <InputScopeName NameValue="Number" />
            </InputScope>
        </TextBox.InputScope>
    </TextBox>
    
  2. NameValue の後にある引用符の間にカーソルを置き、Space キーを押します。

    入力スコープのオプションが一覧表示されます。

  3. テストするオプションを選択します。

  4. アプリケーションを実行し、テキスト ボックスをクリックしてオンスクリーン キーボードを表示します。

  5. 手順 2. ~ 4. を繰り返して、さまざまな入力スコープのオプションをテストします。

キーボードの入力スコープはコードでも設定できます。この手順では、コントロールを追加できるページが含まれる Windows Phone アプリケーションがあることを前提としています。

コードでキーボードの入力スコープを設定するには

  1. ページの XAML ファイルで、次のコードを追加します。

    <TextBox Name="txtPhoneNumber" />
    
  2. ページの分離コード ファイルのコンストラクターで、任意の既存コードの後に次のコードを追加します。

    InputScope scope = new InputScope();
    InputScopeName name = new InputScopeName();
    
    name.NameValue = InputScopeNameValue.Number;
    scope.Names.Add(name);
    
    txtPhoneNumber.InputScope = scope;
    

表示: