設定コントラクト
設定コントラクトは、チャームの設定ボタンから呼び出されアプリケーションの設定を行える機能です。
画像のように設定チャーム起動時にメニューを追加、追加したメニューから設定を行うページを表示します。
設定コントラクトの追加
設定コントラクトの追加は、以下のように行います。
// チャームから設定が呼び出された際のイベントハンドラー
SettingsPane.GetForCurrentView().CommandsRequested += onCommandsRequested;
}
/// <summary>
/// 設定コントラクトが呼び出された際に実行される
/// ここでメニュー項目を追加する
/// </summary>
/// <param name="settingsPane"></param>
/// <param name="eventArgs"></param>
public void onCommandsRequested(SettingsPane settingsPane, SettingsPaneCommandsRequestedEventArgs eventArgs)
{
UICommandInvokedHandler handler = new UICommandInvokedHandler(onSettingsCommand);
SettingsCommand generalCommand = new SettingsCommand("generalSettings", "このアプリについて", handler);
eventArgs.Request.ApplicationCommands.Add(generalCommand);
}
void onSettingsCommand(IUICommand command)
{
// 「このアプリについて」メニューを選択した際の処理を書く
}
SettingsPane.GetForCurrentView().CommandsRequestedイベントハンドラーに、設定チャームから設定が押された際に呼び出されるハンドラーを設定します。続いて、イベントハンドラーで設定メニューの追加を行います。
設定コントラクトで画面端3分の1ほどに設定メニューが表示される表示方法があります。この表示をチャームフライアウトと言います。しかし、チャームフライアウトのコントロールはC#には存在しません(HTML+JavaScriptのプロジェクトには存在します)。
XAML+C#プロジェクトでチャームフライアウトを利用したい場合は、NuGetからダウンロードできる「CharmFlyout」を利用しましょう。
リモート再生コントラクト
リモート再生コントラクトを利用すると音声、ビデオなどをコンピューターから別のデバイスにストリーミングすることができます。
リモート再生コントラクトも送信側と受信側という2つの側面があります。受信側はストアアプリに限らずPlay Toに対応したデバイスであれば受信可能です。
送信側の作成
リモート再生の送信側は、チャームのデバイス選択時に受信対応デバイスが選択されると以下のコードで配信を行います。
playToManager = PlayToManager.GetForCurrentView();
playToManager.SourceRequested += playToManager_SourceRequested;
}
void playToManager_SourceRequested(PlayToManager sender, PlayToSourceRequestedEventArgs args)
{
var deferral = args.SourceRequest.GetDeferral();
var handler = dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
args.SourceRequest.SetSource(VideoSource.PlayToSource);
deferral.Complete();
});
}
PlayToManagerクラス、PlayToSourceRequestedEventArgsクラスを利用します。
受信側の作成
受信側はPlayToReceiverクラスを用いて配信を待機します。待機はPlayToReceiverクラスのStartAsyncメソッドを利用します。
まとめ
今回はWindowsストアアプリケーションの特徴的な機能、「コントラクト」について紹介しました。コントラクトを利用することで、ストアアプリのガイドラインに沿ったアプリ作成が可能になり、ほかのストアアプリやOSの機能を借りてより自分のアプリケーションを機能豊かなものにすることができます。
次回以降も引き続き残りコントラクトを紹介していきますので、ぜひ理解してストアアプリ開発に役立ててください。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- 速習 Windowsストアアプリケーション連載記事一覧
- この記事の著者
-
西村 誠(ニシムラ マコト)
Microsoft MVP Windows Platform Development。 Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。 ブログ:眠るシーラカンスと水底のプログラマー 著書:基礎から学ぶ Windowsストアアプリ開発
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア


