FlipViewコントロールを使ってタッチ操作で画像を切り替えるアプリを作る

2014年7月18日(金)
薬師寺 国安

MainPage.xamlを展開して表示されるMainPage.xaml.csをダブルクリックしてコードエディターを起動し、ロジックコードを記述していきます。

ロジックコード(MainPage.xaml.vb)

まず、名前空間を読み込みます(リスト3)。

リスト3 名前空間の読み込み

LINQ to XMLを利用するため、System.xml.Lingをインポートしておきます。

 using System.Xml.Linq;

次に、ImageInfoクラスを定義します(リスト4)

リスト4 ImageInfoクラスの定義

文字列型の「画像名」、「説明」、「タイトル」を定義します。

public class ImageInfo
{
  public string 画像名 { get; set; }
  public string 説明 { get; set; }
  public string タイトル { get; set; }
}

次にページがアクティブになった時の処理を記述します(リスト5)。

リスト5 ページがアクティブになった時の処理

この処理はインテリセンスから生成することができます。まずpと打ち込むと候補の一覧に「protected」が表示されますので、これを選択します。次に半角開けてoと入力すると、候補の中に「override」が表示されますので、これを選択します。次にonnaと入力すると、候補に「OnnavigatedTo」が表示されますので、これを選択すると、メソッドが生成されます(図5)。

図5:OnNavigatedTo のメソッドがインテリセンスで表示される(クリックで拡大)

XElement.Loadメソッドでphoto_etc.xmlを読み込みます。
次に、ImageInfoクラスの新しいリストであるmyImageInfoオブジェクトを作成します。
Descendantsメソッドで全ての子孫要素「情報」の内容を変数resultに格納しながら、以下の処理を繰り返します。
ImageInfoクラスの「タイトル」プロパティに「画像名」要素からPath.GetFileNameWithoutExtensionを使って、指定したパス文字列のファイル名を、拡張子を付けずに取得して指定します。「画像名」プロパティには「画像名」要素の値を、「説明」プロパティには「説明」要素の値を指定し、AddメソッドでmyImageInfoオブジェクトに追加します。
最後にFlipViewのItemsSourceプロパティに各プロパティの設定されたmyImageInfoオブジェクトを指定します。

protected override void OnNavigatedTo(NavigationEventArgs e)
{
  XElement xmldoc = XElement.Load("photo_etc.xml");
  List<ImageInfo> myImageInfo = new List<ImageInfo>();
  foreach (XElement result in from c in xmldoc.Descendants("情報") select c)       
    {
    myImageInfo.Add(new ImageInfo {
        タイトル = Path.GetFileNameWithoutExtension(result.Element("画像名").Value),
        画像名 = "ms-appx:///Images/" + result.Element("画像名").Value,
        説明 = result.Element("説明").Value
      });
    }
      FlipView1.ItemsSource = myImageInfo;
               base.OnNavigatedTo(e);
}

リスト5を実行すると図6のように表示されます。

図6:Windows(左)とWindowsPhone(右)で表示させた。WindowsPhoneで縦に表示させると文字が小さくなるので、横にして表示させた(クリックで拡大)

今回は、以上で終わりです。一画面だけで処理するユニバーサルアプリなら、今回のように特に問題も発生せず、意外と簡単に作成できます。

ただ、注意してもらいたいのですが、今回の連載で作っているのは、あくまでユニバーサルアプリの入門用アプリなので、このアプリをWindows ストアに申請しても100%リジェクトされます。なぜなら、このアプリに有用性と価値がないからです。Windows ストアのアプリには必ず有用性と価値を求められます。この点については次回でまた解説します。

次回は、既に作成済みのWindowsストアアプリに、Windows Phoneのアプリを追加して作成する手順を解説します。

  • FlipViewコントロールを使った画像切り替えアプリ

    『ユニバーサルWindowsアプリ開発』 第3回のサンプルプログラムです。
薬師寺国安事務所

薬師寺国安事務所代表。Visual Basic プログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。
1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。1997年に薬師寺聖とコラボレーション・ユニット PROJECT KySS を結成。2003年よりフリーになり、PROJECT KySS の活動に本格的に参加、.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。Windows Phoneアプリ開発を経て、現在はWindows ストア アプリを多数公開中

Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。Microsoft MVP for Development Platforms-Windows Platform Development (Oct 2014-Sep 2015)。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています