Apple社のiPhoneにシェアを逆転されたニュースが記憶に新しいです。流行りなのかWindows MobileもiPhoneを追従して、指タッチに対応しようとしている様に思います。
Windows Mobile 6.5になってようやくGesture APIに対応した位で、ネイティブ・.NET Compact Framework共に開発者にとって指タッチに対応したアプリの開発は容易ではありません。iPhoneやAndroidでは簡単に使えるコントロールが、.NET CFでは数百行書かないと実装出来ない事も多々あります。
Windows Mobile 6.x向けのiPhoneライクなコントロール・ライブラリが、オープンソースで公開されていました。
Fluid - Windows Mobile .NET Touch Controls - Home からFluidのソースコードをダウンロードしてください。.NET Comapct Frameworkのv3.5を使っていて、C#で書かれているのが判ると思います。適当に作ったプロジェクトからFluidを参照してください。
メインフォームのLoadイベントハンドラ内で、以下のコードを実行しました。
private void Form1_Load(object sender, EventArgs e) { //Main Panel FluidPanel mainPanel = new FluidPanel(); mainPanel.Bounds = new Rectangle(0, 0, 240, 300); mainPanel.BackColor = Color.Red; mainPanel.GradientFill = true; mainPanel.GradientFillOffset = 30; mainPanel.ForeColor = Color.White; mainPanel.ShowMaximized(); fluidHost1.Add(mainPanel); //Label FluidLabel h1 = new FluidLabel("Fluid サンプル", 0, 0, 240, 40); h1.ShadowColor = Color.Black; h1.ForeColor = Color.White; h1.Alignment = StringAlignment.Center; h1.LineAlignment = StringAlignment.Center; h1.Font = new Font(FontFamily.GenericSansSerif, 12f, FontStyle.Bold); h1.Anchor = FluidControl.AnchorTLR; fluidHost1.Add(h1); // FluidButton okBtn = new FluidButton("OK", 70, 200 - 40, 100, 32); okBtn.BackColor = Color.Black; //okBtn.Click += new EventHandler(okBtn_Click); okBtn.ForeColor = Color.White; okBtn.Anchor = FluidControl.AnchorBL; fluidHost1.Add(okBtn); }
実行結果は、こんな感じです。
Fluidの使い方がイマイチ掴めていないので、Fluidを使って開発されたWindows Mobile Password Safeを参考にサンプルプログラム組んでみようかなぁ。
.NET Comapct Frameworkのv4.0では、標準で「イマドキ」なモバイル向けコントロールを追加して欲しいなぁ。Silverlight使えって言われそうだけど……