チャームの設定ボタンに項目を追加する方法

先日登録したwindowsストアアプリですが、不合格でした(´・ω・`)

f:id:katashiyo515:20131201003039j:plain

プライバシーポリシーとマルチ言語対応してないってところで落とされてます。
マルチ言語対応はリリースを日本だけにして対応しました。
 
問題はプライバシーポリシーのほうで、ネットワークにつながるアプリは必ず書く必要があるそうです。
ほかのアプリを参考にチャーム(WIN+C)の設定ボタンにプライバシーポリシーを追加することにしました。

チャームの設定ボタンに項目を追加する方法

  • SettingsFlyout画面を作成
  • App.xaml.csにSettingsFlyoutを登録
の2つの手順で作成できました。
SettingsFlyout画面を作成
プロジェクトを右クリック→追加→新しい項目
Windows ストアアプリのポップアップの設定の追加

f:id:katashiyo515:20131201004629j:plain

これで作成完了です!
App.xaml.csにSettingsFlyoutを登録

WinRT/Metro TIPS:簡単にフライアウトを出すには?[Windows 8.1ストア・アプリ開発] - @IT がそのまま使えました。

App.xaml.csに以下の関数を追加します。

        protected override void OnWindowCreated(WindowCreatedEventArgs args)
        {
            AddOptionPanel();
 
            base.OnWindowCreated(args);
        }
 
        static internal void AddOptionPanel()
        {
            Windows.UI.ApplicationSettings.SettingsPane.GetForCurrentView().CommandsRequested
              += SettingsPane_PrivacyPolicy;
        }
 
        static void SettingsPane_PrivacyPolicy(Windows.UI.ApplicationSettings.SettingsPane sender,
          Windows.UI.ApplicationSettings.SettingsPaneCommandsRequestedEventArgs args)
        {
            Windows.UI.ApplicationSettings.SettingsCommand optionSetting
              = new Windows.UI.ApplicationSettings.SettingsCommand(
                "PrivacyPolicySettings",
                "プライバシーポリシー",
                (handler) =>
                {
                    // 作成したSettingsFlyoutクラス
                    SettingsFlyoutPrivacy optionsFlyout = new SettingsFlyoutPrivacy();
                    optionsFlyout.Show();
                });
            args.Request.ApplicationCommands.Add(optionSetting);
        }
これで完了。
 
アプリを実行し設定画面を開くと、見事プライバシーポリシーの項目が増えてます。

f:id:katashiyo515:20131201010118j:plain

 
これでもう一度ストアアプリに登録してみます
うまくいきますように(;´・ω・)
 
参考URL