locked
アプリケーションバーの矢印ボタン「←」「→」 RRS feed

  • 質問

  • お世話になります。

    アプリケーションバーの「←」「→」ボタン(下記ファイル)を
    使用して画像を切り替えたいと考えております。

    C:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Icons\dark\appbar.back.rest.png
    C:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Icons\dark\appbar.next.rest.png

    下記画面Bの2,3を実装させたいと考えております。


    ■画面A
     1.xmlから取得したURL(画像)をリストボックスのItemsSourceにセット【実装済】
     2.リストボックスの画像をタップすると画面Bへ遷移【実装済】

    ■画面B
     1.画面Aの2で選択された画像を表示【実装済】
     2.アプリケーションバーの「→」をタップすると画面Aの2で選択された次の画像を表示したい【実装できません】
     3.アプリケーションバーの「←」をタップすると画面Aの2で選択された前の画像を表示したい【実装できません】

    UI上に「←」「→」ボタンの設置はできましたが
    「←」「→」ボタンをタップしたときのイベントについてご教授できますでしょうか?

    また、参考になる文献などありましたらレス頂けると幸いです。

    何卒、よろしくお願いいたします。
    2012年2月20日 8:13

すべての返信

  • こんばんは。ikeda.shogoukiです。

    アプリケーションバーアイコンのイベントの登録(?)方法ですがいくつかあります。

    簡単なのは、Blendの「オブジェクトとタイムライン」タブからイベントを登録したいボタンを選択して、
    「プロパティ」タブの名前の右にあるカミナリのようなボタンを押下して、「Click」の右のTextBoxをダブルクリックしてください。
    そうすると、イベントハンドラが自動的に追加されると思います。

    VisualStudioから追加する場合は
                <shell:ApplicationBarIconButton IconUri="appbar_button.png" 
                                                Text="ボタン"/> 
     

    というようなボタンだとして、Textプロパティの下の行に一行追加し、 「Click=」と入力すると「<新しいイベントハンドラー>」という選択肢が出てくると思いますのでそれを選択してみてください。
    簡単にイベントハンドラが追加できると思います。

    参考になりましたでしょうか?
    2012年2月20日 9:34
  • ikeda.shogouki さん

    レスを頂きありがとうございます。

    説明不足で大変申し訳ありません。

    イベントの追加(登録)は実装できております。

    下記画面Bの2,3のイベントの中身(ロジック)について
    ご教授できますでしょうか?

    ---

    ■画面A
     1.xmlから取得したURL(画像)をリストボックスのItemsSourceにセット【実装済】
     2.リストボックスの画像をタップすると画面Bへ遷移【実装済】

    ■画面B
     1.画面Aの2で選択された画像を表示【実装済】
     2.アプリケーションバーの「→」をタップすると画面Aの2で選択された次の画像を表示したい【実装できません】
     3.アプリケーションバーの「←」をタップすると画面Aの2で選択された前の画像を表示したい【実装できません】
    ---

    何卒、よろしくお願いいたします。

    2012年2月20日 9:46
  • なるほど。そういうことでしたか。

    手っ取り早い解決方法としては、App.xaml.csに画面Aで取得した画像のリストを格納する変数を追加するのが良いと思います。
    App.xaml.cs似追加しておけば、どこからでも参照できるので、

    1.画面Aで画像リストを取得後、App.xaml.csの変数に格納する。
    2.画面Aで選択された画像のIDを画面Bに引数か何かで渡す。
    3.画面Bで選択された画像を表示。
    4.←・→ボタンを押下されたら、App.xaml.csからリストを取得し、次のIDの画像をセットする。

    と言った感じで実装できると思います。

    ただし、画面A→画面B→バックグランドへ移行→Tombstone状態→画面Bに戻る、という遷移が有りうるため、
    画面Aで画像リストを取得するのではなく、画像リストを取得するクラスを作っておき、App.xaml.csからリストを取得するときに、
    画像リストがなければ取得し直すようにしておけば良いと思います。


    2012年2月20日 11:31