locked
現在選択されている入力パネル(SIP)の判別方法もしくはSIPの高さ情報を取得する方法 RRS feed

  • 質問

  • Windows Phoneで現在どの言語のSIPが選択されているかを知る方法、もしくは現在のSIPの高さを取得する方法はないでしょうか?

    ご存知のように、日本語版には他の言語に無いカーブフリック入力やQWERTYローマ字時にも未確定文字列を表示するなど独自の拡張が成されているため、SIPの高さが他の言語のSIPとは異なっています。(もしかして: 中国語も?)
    このため、英語版を前提に作られたコンポーネントの動作に支障をきたす場合があるようです。

    より具体的に言えば、日本語SIPが選択されている場合、Silverlight for Windows Phone ToolkitのAutoCompleteBoxで補完候補のリストがSIPの下にもぐってしまい使い物になりません。
    幸いToolkitはソースが公開されていますので、中をチェックしてみたところ... 

    public const double SipPortraitHeight = 339;

    こんな状態(あらまあ)。

    とりあえず、日本語SIPの時はHeightをかさ上げするコードを入れてみようかと思いましたが、日本語・英語SIPを併用しているユーザーも数多くおられると思われるので、英語SIP時の動作をスポイルしないよう、現在開いているSIPの言語を確認するコードを入れたいところです。しかし、どうもそのようなAPIは見当たらず困っております。

    基本的にはAPIは用意されていない、という結論な気がしますが、なんとか違いを見つけ出す方法はないでしょうか?
    アプリケーションのクライアント領域サイズをうまいこと取得できないかとあれこれ試してみたのですが、今のところ見つけることができていません。

    次期バージョンでは公式にAPIとして取得可能なようになってほしいと思います。

    • 移動 Mike Wang (MSCS) 2012年10月2日 11:08 (移動元:Windows Phone 7 向けの開発)
    2011年12月23日 1:49

回答

  • 残念ながら現状は取得する方法はないと思います。

    ですので、AutoCompleteBoxを使うのであればサイズの大きい日本語の入力パネルに合わせて設計するしかないでしょう。


    マイクロソフト エバンジェリスト 高橋 忍

    • 回答としてマーク kaorun 2012年2月14日 23:37
    2012年2月14日 15:55