5

xboxのようなオンスクリーンキーボードでテキストを表示して入力する必要があります。残念ながら、電話をかけるとGuide.BeginShowKeyboardInput、面白いテキストボックスしか表示されないので、キーボードで入力する必要があります。PC ivではキーボードを使用するのはごく普通のことですが、私の場合は、画面キーボードのxboxを使用して、ゲームパッドからテキストを入力する必要があります。

これを達成する方法はありますか?PCでxboxオンスクリーンキーボードを呼び出すには?

4

5 に答える 5

4

タッチスクリーンモニターのようなものが必要な場合は、

 using System.Diagnostics;
 using System.IO;

次に、この関数を使用します

  Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.System) + Path.DirectorySeparatorChar + "osk.exe");

ただし、xboxコントローラーのように動作させる必要がある場合は、おそらく独自のコントローラーを作成する必要があります。

于 2013-02-01T17:38:06.667 に答える
2

いいえ。呼び出されるキーボードをエンドユーザーが制御できるようにすることは、設計上の決定(ここに記載)でした。したがって、エンドユーザーはテキストボックス(など)をタッチして、仮想オンスクリーンキーボードを呼び出す必要があります。

このリンクからこのテキストを確認してください

Blockquoteユーザー主導の呼び出しタッチキーボードの呼び出しモデルは、ユーザーがキーボードを制御できるように設計されています。ユーザーは、アプリケーションに代わって決定を行わせる代わりに、入力コントロールをタップしてテキストを入力することをシステムに示します。これにより、キーボードが予期せず呼び出されるシナリオがゼロになります。これは、キーボードが画面の最大50%を消費し、アプリケーションのユーザーエクスペリエンスを損なう可能性があるため、UIチャーンの痛みを伴う原因となる可能性があります。ユーザー主導の呼び出しを可能にするために、最後のタッチイベントの座標を追跡し、それらを現在フォーカスがある要素の外接する長方形の位置と比較します。ポイントが外接する四角形内に含まれている場合、タッチキーボードが呼び出されます。

Blockquoteこれは、アプリケーションがフォーカスの操作を介してプログラムでタッチキーボードを呼び出すことができないことを意味します。ここでの過去の大きな犯人はウェブページでした。それらの多くはデフォルトで入力フィールドにフォーカスを設定しますが、ユーザーが楽しめるようにページで他の多くのエクスペリエンスを利用できます。この良い例はmsn.comです。Webサイトには消費するコンテンツがたくさんありますが、ページの上部にデフォルトでフォーカスされるBing検索バーがあります。キーボードが自動的に呼び出された場合、その検索バーの下にあるすべての記事がデフォルトで隠され、タブレットでのWebサイトのエクスペリエンスが損なわれます。ユーザーが新しい電子メールメッセージを開始したときや検索ペインを開いたときなど、キーボードを取得するためにタップする必要がないという特定のシナリオがあります。でも、

于 2013-02-03T13:30:01.397 に答える
1

チェックアウト:http
://classes.soe.ucsc.edu/cmps020/Winter08/lectures/controller-keyboard-input.pdf ここで答えを見つけることができます。ゲームパッドなどの入力に関するすべての情報が含まれています。

于 2013-02-01T12:08:19.887 に答える
1

これを行う方法についての良いガイドがここにあります:

static public string GetKeyboardInput() 
{ 
    if (HandleInput.currentState.IsButtonDown(Buttons.B)) 
    { 
        useKeyboardResult = false; 
    } 

    if (KeyboardResult == null && !Guide.IsVisible) 
    { 
         string title = "Name"; 
         string description = "Pick a name for this game"; 
         string defaultText = "Your name here"; 

         pauseType = PauseType.pauseAll; 
         KeyboardResult = Guide.BeginShowKeyboardInput(HandleInput.playerIndex, title, 
                                                       description, defaultText, null, null); 

         useKeyboardResult = true; 
         pauseType = PauseType.pauseAll; 

     } 
     else if (KeyboardResult != null && KeyboardResult.IsCompleted) 
     { 
          pauseType = PauseType.none; 
          KeyboardInputRquested = false; 

          string input = Guide.EndShowKeyboardInput(KeyboardResult); 
          KeyboardResult = null; 

          if (useKeyboardResult) 
          { 
               return input; 
          } 
     } 

     return null; 
} 

また、Updateメソッドには次のようなものが含まれている必要があります。

if (KeyboardInputRequested) 
{ 
    string result = GetKeyboardInput(); 
} 

if (result != null) 
{ 
    //use result here 
} 
于 2013-02-04T12:15:41.560 に答える
0

オンスクリーンキーボードがPC用のXNADLLにパッケージ化されている可能性は低いですが、本当に知りたい場合は、無料の.NET逆コンパイルプログラム(ILSpyなど)を調べて調べることができます。

また、チャットパッドも使用できません。コントローラーで使用できる独自のオンスクリーンキーボードを作成するか、可能であれば、MonoGameフレームワーク(XNAのオープンソースバージョン)を使用して、オンスクリーンキーボードをオンにするように変更することをお勧めします。ウィンドウズ。コントローラによって制御される仮想キーボードとして機能する別のプログラムを作成することもできます。

于 2013-07-05T00:10:36.867 に答える