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

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

2012/02/09

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

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

さまざまなキーボード オプションを含むキーボード インデックスのサンプル アプリケーションをダウンロードできます。詳細については、「Windows Phone のコード サンプル」を参照してください。

注注:

オンスクリーン キーボードは、ソフトウェア入力パネル (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 キーを押します。

    IntelliSense が入力スコープ オプションをリストします。

  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;
    

表示:
© 2014 Microsoft