Hatena::Groupwindowsmobile-dev

WindowsMobileのはなし

2010-08-17

WindowsPhone7でも日本語入力を

| 18:29 | WindowsPhone7でも日本語入力を - WindowsMobileのはなし を含むブックマーク はてなブックマーク - WindowsPhone7でも日本語入力を - WindowsMobileのはなし

WindowsPhone7Betaで日本語の表示がとりあえずながらもサポートされました。

MS中の人はべつにサポートしようとしてサポートしたのではなくなんとなくフォント突っ込んだだけとかそういう気もしますが。

でもって、日本語入力もサポートされているとうれしかったのですが、残念ながらさすがにそれはサポートされていませんでした。ちなみに<TextBox>のInputContextにはHiraganaやKnjiが用意されているのでそのうちサポートする気はあるようです。

ところで、アプリケーションの開発にはやっぱり日本語入力ができたほうがやる気が出るわけでして、同じことを考えているid:iseebi が一晩で日本語入力するテストを公開してくれました。

そろそろ Windows Phone 7アプリも書き始めないとなーとか思ったのですが、Betaになってから表示はできるようになったものの当初の発売予定が存在しない日本語のIMEは現時点ではサポートされていません。

アプリ作るにもひとまず日本語入力ができないと何もできないので、Social IMEを使って日本語入力を実装してみました。入力した内容を、Socal IMEに問い合わせて、入力候補を探してきます。

Windows Phone 7 で日本語入力を実現する - backyard of 伊勢的新常識

このままじゃ再利用もできないので使いやすいようにUserControlに書き換えてきました。まぁ実際使いやすいかと言われると微妙なところですが。

使い方は、Japanese.JpTextBox.dllアセンブリ参照に追加して、XAMLの最初のほう、phone:PhoneApplicationPageにxmlnsを追加します。追加したら後はてきとーなかんじでXAML書くと使えます。

<phone:PhoneApplicationPage
    xmlns:jp="clr-namespace:Japanese;assembly=Japanese.JpTextBox"
    >
    <jp:JpTextBox x:Name="textBox" />
</phone:PhoneApplicationPage>

日本語入力のOn/Offですが、記号パッドのなかの"・"(なかぐろ?)をタップするとIMEがOn/Offされます。IMEが有効だとテキストエリアの枠がPhoneAccentColorになる仕様。

このライブラリバインディング周りがかなりおかしくて、一応日本語入力はできるものの、Bindingでテキストの値を参照するとうまく動かないことが多いです。プロパティCLRプロパティで参照した方が無難です。

依存関係プロパティとかいまいち理解してないやつが作ってるので、Silverlightに詳しい方にいろいろ指摘していただけるとありがたいです。

Download: Japanese.JpTextBox.1008171158

DeviceResolutionAwareのはなし

| 18:12 | DeviceResolutionAwareのはなし - WindowsMobileのはなし を含むブックマーク はてなブックマーク - DeviceResolutionAwareのはなし - WindowsMobileのはなし

C++でのネイティブ開発向けのライブラリとしてDeviceResolutionAware.hというヘッダライブラリSDK内に提供されています。

こいつはなんぞや。ってところからいくと、WindowsMobileには96dpi, 128dpi, 192dpiの3種類があります。Standardも含めると5種類ぐらいかな?

でもってこんだけ解像度がたくさんあったら開発者がたいへんだろが!あほ!ということでこのライブラリがあるわけです。

何をしてくれるかというと、つまるところ、定数値をDPIスケーリングするためのライブラリです。このライブラリ内にDRA::SCALEXDRA::SCALEYといった関数が含まれていて、こいつに定数を渡すと実行中の端末のDPIにあわせた値にスケーリングしてくれるという便利なやつです。

DRA::SCALEXDRA::SCALEYはインライン展開されるけど、毎回計算したら遅いんじゃ・・・とかおもったんですけど意外と遅くなりませんでした。さすがMS

1千万回呼んで誤差が数十秒程度なので実際のところはほとんど無視できる範囲だと思います。

インライン展開されるのでコード量が増えるのがちょっとあれですけど、どんどん使っていったらいいとおもいますよ!

MichelMichel 2012/11/03 18:13 I wanted to spend a muinte to thank you for this.

ogwsdkogwsdk 2012/11/04 06:37 W6kEHj <a href="http://waxhmaymusfs.com/">waxhmaymusfs</a>

gliebhdgliebhd 2012/11/05 14:43 RlBtF5 , [url=http://olexlldtwevk.com/]olexlldtwevk[/url], [link=http://oftqfgzvnijo.com/]oftqfgzvnijo[/link], http://covjofyrkfpd.com/

ゲスト