Windowsストア アプリ開発 Tips集004 ~設定チャームに項目を追加する~

マイクロソフトの田中達彦です。
本連載では、C#/XAML でWindowsストアアプリを開発するときにヒントを紹介します。

[設定チャームに項目を追加する]
設定チャームへの項目の追加は、App.xaml.csの中に記述します。
まず、設定チャーム関連の機能が入っている以下の名前空間を、App.xaml.csの最初にあるusing節の定義部分に追加します。

using Windows.UI.ApplicationSettings;
using Windows.UI.Popups;

そして、OnLaunchedイベントハンドラーの最後に、以下の1文を追加します。

SettingsPane.GetForCurrentView().CommandsRequested += App_CommandsRequested;

以下のApp_CommandsRequestedイベントハンドラーとonSettingsCommandを追加します。

void App_CommandsRequested(Windows.UI.ApplicationSettings.SettingsPane sender, Windows.UI.ApplicationSettings.SettingsPaneCommandsRequestedEventArgs args)
{
    args.Request.ApplicationCommands.Add(new SettingsCommand(
        "ShowHowToPlayPage", "遊びかた", new UICommandInvokedHandler(onSettingsCommand)));
}

void onSettingsCommand(IUICommand command)
{
    switch (((SettingsCommand)command).Id.ToString())
    {
        case "ShowHowToPlayPage":
            // ここに処理を入れる
            break;
    }
}

アプリが起動され、設定チャームを呼び出したときにApp_CommandsRequestedが呼ばれます。
App_CommandsRequestedの中では、"ShowHowToPlayPage"というコマンドを設定チャームに追加しています。
設定チャームに表示される文字列は、この例では「遊びかた」です。
これらのコマンド名や表示される文字列は、任意のものを設定できます。

そして、設定チャーム上のコマンドが選択されたときは、onSettingCommandが呼ばれます。
プログラム側では、コマンド名に該当するコードが実行されます。
この例では、設定チャームに表示される「遊びかた」をクリックすると、onSettingCommandの中の「// ここに処理を入れる」と書かれたところに記述したコードが実行されます。

[関連記事]
アプリ設定のガイドライン (Windows ストア アプリ)
https://msdn.microsoft.com/ja-jp/library/windows/apps/hh770544.aspx

Windowsストア アプリ 作り方解説 Line Attack編 第9回 ~表紙ページの追加~
https://blogs.msdn.com/b/ttanaka/archive/2013/02/14/windows-line-attack-9.aspx

[前後の記事]
003 ~何らかの値をストレージに記録する~
005 ~グリッドアプリの最初のアイテム(タイル)を大きくする~
Tips集 まとめページ

マイクロソフト
田中達彦