kazuakix の日記

Windows Phone とか好きです

Windows Phone 8.1 でセカンダリ タイルを列挙する

月が変わっていよいよ MSCC の開始ですね。我らがチーム「Windows Phone の呼び声」が作るアプリの内容はナイショですが、少しだけネタバレすると Windows Phone のアプリを作ります。

という訳でまずは基礎的な機能の確認をしているところです。

セカンダリ タイルの列挙

Silverlight の頃は ShellTile.ActiveTiles プロパティを使って列挙していました。
ActiveTiles の先頭は必ずメインのタイル、セカンダリ タイルの区別は作成時に指定した NavigationUri プロパティの内容でした。

例えば特定のタイルを取り出す場合はこんな感じ。

var secondaryTile 
    = ShellTiles.ActiveTiles
      .FirstOrDefault(t => t.NavigationUri.ToString().Contains("~"));

 
Windows ランタイムの場合は SecondaryTile.FindAllAsync() メソッドを使います。
名前からもわかるようにあくまでセカンダリ タイルだけが列挙されて、タイルの区別には作成時に指定した TileId プロパティを使用します。(タイルの作成についてはコチラ)

同じように特定の ID のタイルが必要な場合はこんな感じ。

var secondatyTile 
    = (await SecondaryTile.FindAllAsync())
      .FirstOrDefault(t => t.TileId == "~");

タイルを使って Windows Phone らしいアプリに仕上げていきたいですね。
 

(余談) 我が軍の状況

ちなみにうちのリーダーと、もう一人のメンバーの状況です。

ダメだこいつら...はやくなんとかしないと...