2012-02-11
2012-02-09
Windows PhoneでShift-JISやEUC-JPの文字列を扱う
Windows PhoneはUTF-8を使用するのが基本であり、日本で一般的に使われているShift-JIS(以下、SJIS)はサポートされていません。
例えば、SJISを使用しているテキストファイルをダウンロードしてきて文字列を表示させるプログラムを書いてみましょう。
using System; using System.Net; using System.Windows; using System.Windows.Navigation; using Microsoft.Phone.Controls; namespace NugetTest { public partial class MainPage : PhoneApplicationPage { // コンストラクター public MainPage() { InitializeComponent(); } protected override void OnNavigatedTo(NavigationEventArgs e) { // WebClientのインスタンスを生成する var client = new WebClient(); // 文字列のダウンロードを開始する client.DownloadStringCompleted += client_DownloadStringCompleted; client.DownloadStringAsync(new Uri("http://ch3cooh.jp/files/hello-sjis.txt")); } // 文字列のダウンロードが完了 void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) { MessageBox.Show(e.Result); } } }
2012-02-08
結婚しよう!に@を返したら結婚する事になった
ブログにもmixiにも個人的な内容は書いていないので、記憶を辿るしかないんだけど………文才もないので面白いことは書けないけれど端的に書いていこう。
たしか2008年頃にTwitterを初めてしばらく経った後の話で、@jz5に「コードギアス面白いよ」とか教えてもらって7周位アニメを繰り返して見てた時期の話。
Pictures Hubでの「カメラロール」のような文字列だけのボタンを作る(ざっくり版)
@ch3cooh ありがとうございます。 もう一つ疑問なのがPictureハブのカメラロールのようなアイテムはどのように作るんでしょうか? TextBlockにイベントハンドラを載せたりはできないですよね。
2012-02-08 10:37:00 via YoruFukurou to @ch3cooh
機会があれば丁寧に書きますが、今回はざっくりとPictures Hubのようなボタンの作り方を書きたいと思います。
Pictures Hubでの「カメラロール」というのは、これです。
NavigationServiceでルートページまで戻る
iPhoneではTabBarControllerというものがあり、ドリルダウン式に画面遷移させることができます。メモリの許す限りドリルダウンをさせることができ、n階層まで潜った状態からでも現在表示させているタブをタップすると、一気にルートページに戻ることができます。
Windows PhoneでもNavigationServiceと呼ばれる機構が存在しており、画面遷移をスタック的に管理しています。例えば、ページAからページB、ページBからページCと画面遷移をおこなった場合に、ルートのページ(ここではページA)まで戻る方法がWindows Phone OS 7.0では提供されていませんでした。
Windows Phone OS 7.1ではいくつかのメソッドが追加されました。
BackStackプロパティで履歴スタックの数が取得でき、RemoveBackEntryメソッドを実行するごとに履歴スタックに積まれた最新のページを削除することができるようになりました。
これらのメソッドを用いて履歴スタックの数だけ履歴を削除することで、ルートページまで一気にさかのぼることが可能です。
では、最後にコードです。単純にルートページを残して遷移スタックを削除しているだけというのが分かるかと思います。
// 画面遷移の履歴スタック数を取得する int stackCount = NavigationService.BackStack.Count(); // ルートページのみを残して遷移スタックを削除 for (int i = 0; i < stackCount - 1; i++) { NavigationService.RemoveBackEntry(); } // ルートページへ戻る NavigationService.GoBack();
最近買った本と買いたい本
| iOS/Android/Windows Phoneプログラミング (日経BPパソコンベストムック) | |
![]() | 日経ソフトウエア 日経BP社 2012-01-12 売り上げランキング : 49110 Amazonで詳しく見る¥ |
「Windows Phoneアプリ開発する人なら読んでおかないとダメだよ!」って言われたので慌てて購入。大黒さん、初音さん、id:c-mitsuba が執筆してることも後から聞きました。
あと、Jenkins本はオライリーのが出た時点でセットで購入する予定。今は読む余裕がないので後から買わせて頂きます。
| Jenkins実践入門 〜ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus) | |
![]() | 佐藤 聖規 和田 貴久 河村 雅人 米沢 弘樹 山岸 啓 技術評論社 2011-11-11 売り上げランキング : 5523 Amazonで詳しく見る |
| Jenkins | |
![]() | John Ferguson Smart Sky株式会社 玉川 竜司 オライリージャパン 2012-02-22 売り上げランキング : 4781 Amazonで詳しく見る |
id:c-mitsuba と大場さんの本も買いですね。Expression BlendでのWindows Phoneアプリ開発を考慮する上で外せない本になりそうです。
| はじめてのWindows Phoneプログラミング | |
![]() | 泉本 優輝 工学社 2012-02-08 売り上げランキング : 37351 Amazonで詳しく見る |
目次からのピックアップになりますが、Expression Blendの知識が欲しい方向けにはこの辺りが面白い内容になっているのではないかと思います。
- 5. Expression Blend
- 5-1 「Expression Blend」とは
- 5-2 「Expression Blend for Windows Phone」で開発
- 5-3 「Expression Blend」の使い方
- 5-4 Hello Expression Blend
- 5-5 「Expression Blend for Windows Phone」のみで開発す「Hello World
- 5-6 アニメーション
- 5-7 「Windows Phone」のColor Resourceを利用する
- 5-8 バインディング
- 5-9 SampleDataSet
- 6. Tips
- SaveScreenShotAction
- OpenWebBrowserTaskAction
他にも4章のBingMapsTask辺り、PhotoChooserTask、CameraCaptureTaskがLauncherとChooserでまとまってなくて節単位でバラバラになっている理由が興味がある。。。
2012-02-07
ナビゲーション履歴を無視してアプリケーションを一気に終了させる
いつもTwitterでお世話になっているmisoさんが悩んでられました。
本当にプログラム側からページを閉じる処理ってどうやればいいんだ、BackKeyPreessでしか閉じられないのか? #wp7dev_jp
@ch3cooh プログラム内から呼び出されるページをタイルからいきなり呼び出して、処理が終わったらページを閉じる、ってーのがやりたいんです・・・ GoBackでやってたんですけどMarketplaceに投げたら例外の報告が大量に()
2012-02-04 22:45:43 via MetroTwit to @ch3cooh
前のページに戻るだけであれば、NavigationService.GoBackメソッドを使えば良いのですが、処理を実行後にアプリケーションを終了させたいというのが分かりました。
Windows Phoneのユーザー操作の一貫性が損なわれてしまいいますので、ルートページでBackキー以外の終了は推奨されていませんが、止む得ない事情でルートページではないページでアプリケーションを終了させる方法が2通り存在します。











CH3COOH / Kenji WadaMicrosoft MVP for Device Application Development(Jul 2010 - Jun 2012)