Hatena::ブログ(Diary)

酢ろぐ(ch3cooh.jp) RSSフィード


CH3COOH(酢酸)の実験室
Baseball Japan / ○○時計 for WP7 / for WM
Windows Phone 7 開発 Tips

2012-02-08

結婚しよう!に@を返したら結婚する事になった

f:id:ch3cooh393:20120208031841p:image

ブログにもmixiにも個人的な内容は書いていないので、記憶を辿るしかないんだけど………文才もないので面白いことは書けないけれど端的に書いていこう。

たしか2008年頃にTwitterを初めてしばらく経った後の話で、@jz5に「コードギアス面白いよ」とか教えてもらって7周位アニメを繰り返して見てた時期の話。

当時はD社というところで働いていたのですが、携帯バブルが弾けた途端業績が悪化して、親会社で警備会社であるC社に吸収されることになりました。

C社にいる時に、某大手企業に客先常駐で業務請負で働いていました。直属の上司である部長と常駐先の社長とが飲み友達というだけで働いていたので、その会社での立場はあまり良くなく仕事がないにも関わらず請負を切られることない状況でした。

本当にやることがなく、Twitterにだだハマりしていました。この頃のTwitterの身内感は本当に良かった。Twitterやってる人みんなが友達みたいな感覚で、今からは考えられないけどネット上の友達の家に遊びに行ったり泊めたりとかしていました。@Fuhdukiと付き合うようになったのもこの頃かな。

当時は@pullusや@2bbbとの絡みが多くてpixivAPIを解析したり同人誌書いてたりしました。嫁が結婚しよう!って言ってるのも@2bbb経由で知りました。

f:id:ch3cooh393:20120208031840p:image

いつもの如くノリで「結婚しよう!」って@を返しましたのをキッカケに嫁と仲良くなりました。

仕事をもらえない会社を土下座するレベルでなんとか辞めさせてもらって、その後業務系プロジェクトに参画している時に、嫁が大阪遊びに来ました。

このプロジェクトに参画している時の上司は、グルメハンターと呼ばれる課長で、美味しい所だけもっていくタイプの人でした。業務系プロジェクトに慣れないメンバーに作業を丸投げにして、終電徹夜休出は当たり前の世界で、嫁がせっかく大阪に遊びに来てるのに家で留守番させっぱなしにさせてしまっていました。

そんだこんだで1週間ほどで帰る予定だったのが、ろくに相手も出来ていなかったのでそのまま大阪に居続けることに。まったく予想だにしていなかったのですが、1週間の大阪旅行が2年くらい長引くことになります。大阪に来て1年経った辺りで嫁は短大に入ることになりました。

その時点から結婚するだろうなーと考えていたのですが、心理学をやりたいので大学院まで行きたいと言っていました。嫁の性格上短大の時点で結婚してしまうと勉強しないと思ったので「大学に入ったら結婚するかー」なんて返した記憶が。

去年末、4年制の大学の編入試験に合格通知が来て、短大の卒業認定(必要単位がすべて取れている確認書類的なもの)が来たのでこれは編入確定だということで、嫁の誕生日に合わせて入籍する運びとなりました。

f:id:ch3cooh393:20120208044940j:image

周りに「まだ結婚してなかったの?」と言われる位、今の生活に慣れてしまっているので改めて結婚するという事はよくわからないんだけど、年末調整の扶養家族欄に「有り」に丸を付ける辺りで実感が沸いてくると思う。

しかし、嫁が最近主婦化してきて怖い。

ってことで、君は「結婚しよう!」とつぶやいてもいいし、「@〜 結婚しよう!」と@を返してもいいと思います。

Pictures Hubでの「カメラロール」のような文字列だけのボタンを作る(ざっくり版)

機会があれば丁寧に書きますが、今回はざっくりとPictures Hubのようなボタンの作り方を書きたいと思います。

Pictures Hubでの「カメラロール」というのは、これです。

f:id:ch3cooh393:20120208105039p:image

Visual Studioで適当なプロジェクトを作成します。MainPage.xamlで右クリックして[Expression Blendを開く]を選択します。

TextBlockコントロールをドラッグアンドドロップでページ上に配置します。

f:id:ch3cooh393:20120208110140p:image

配置したTextBlockコントロールを右クリックして、メニューから[コントロールの作成]を選択します。

f:id:ch3cooh393:20120208110141p:image

選択したオブジェクトをベースにして、コントロールを作成することができるダイアログが表示されます。ここでコントロールの種類を「Button」にしてください。[OK]ボタンをクリックします。

f:id:ch3cooh393:20120208110142p:image

Expression Blendでの処理は以上で終わりです。Expression Blendでの変更を保存して終了させます。

Visual Studioを開き、TextBlockの見た目をしたButtonコントロールが存在するのを確認します。あとは普通のボタンのようにダブルクリックしてイベントハンドラを追加します。

f:id:ch3cooh393:20120208110143p:image

他のページにリンクをさせるのが目的でしたら、以下の様にNavigationServiceでページ遷移させてしまっても良いかもしれません。

using System;
using System.Windows;
using Microsoft.Phone.Controls;

namespace ButtonStyleTest {
    public partial class MainPage : PhoneApplicationPage {
        // コンストラクター
        public MainPage() {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e) {
            NavigationService.Navigate(new Uri("/XXXXPage.xaml", UriKind.Relative));
        }
    }
}

NavigationServiceでルートページまで戻る

iPhoneではTabBarControllerというものがあり、ドリルダウン式に画面遷移させることができます。メモリの許す限りドリルダウンをさせることができ、n階層まで潜った状態からでも現在表示させているタブをタップすると、一気にルートページに戻ることができます。

f:id:ch3cooh393:20120208030232p:image

Windows PhoneでもNavigationServiceと呼ばれる機構が存在しており、画面遷移をスタック的に管理しています。例えば、ページAからページB、ページBからページCと画面遷移をおこなった場合に、ルートのページ(ここではページA)まで戻る方法がWindows Phone OS 7.0では提供されていませんでした。

Windows Phone OS 7.1ではいくつかのメソッドが追加されました。

BackStackプロパティで履歴スタックの数が取得でき、RemoveBackEntryメソッドを実行するごとに履歴スタックに積まれた最新のページを削除することができるようになりました。

これらのメソッドを用いて履歴スタックの数だけ履歴を削除することで、ルートページまで一気にさかのぼることが可能です。

f:id:ch3cooh393:20120208030233p:image

では、最後にコードです。単純にルートページを残して遷移スタックを削除しているだけというのが分かるかと思います。

// 画面遷移の履歴スタック数を取得する
int stackCount = NavigationService.BackStack.Count();
// ルートページのみを残して遷移スタックを削除
for (int i = 0; i < stackCount - 1; i++) {
    NavigationService.RemoveBackEntry();
}
// ルートページへ戻る
NavigationService.GoBack();

最近買った本と買いたい本

iOS/Android/Windows Phoneプログラミング (日経BPパソコンベストムック)
iOS/Android/Windows Phoneプログラミング (日経BPパソコンベストムック)日経ソフトウエア

日経BP社 2012-01-12
売り上げランキング : 49110


Amazonで詳しく見る

Windows Phoneアプリ開発する人なら読んでおかないとダメだよ!」って言われたので慌てて購入。大黒さん、初音さん、id:c-mitsuba が執筆してることも後から聞きました。

あと、Jenkins本はオライリーのが出た時点でセットで購入する予定。今は読む余裕がないので後から買わせて頂きます。

Jenkins実践入門 〜ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)
Jenkins実践入門 〜ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)佐藤 聖規 和田 貴久 河村 雅人 米沢 弘樹 山岸 啓

技術評論社 2011-11-11
売り上げランキング : 5523


Amazonで詳しく見る

Jenkins
JenkinsJohn Ferguson Smart Sky株式会社 玉川 竜司

オライリージャパン 2012-02-22
売り上げランキング : 4781


Amazonで詳しく見る

id:c-mitsuba と大場さんの本も買いですね。Expression BlendでのWindows Phoneアプリ開発を考慮する上で外せない本になりそうです。

はじめてのWindows Phoneプログラミング
はじめてのWindows Phoneプログラミング泉本 優輝

工学社 2012-02-08
売り上げランキング : 37351


Amazonで詳しく見る

目次からのピックアップになりますが、Expression Blendの知識が欲しい方向けにはこの辺りが面白い内容になっているのではないかと思います。

  • 6. Tips
    • SaveScreenShotAction
    • OpenWebBrowserTaskAction

他にも4章のBingMapsTask辺り、PhotoChooserTask、CameraCaptureTaskがLauncherとChooserでまとまってなくて節単位でバラバラになっている理由が興味がある。。。