かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Windows store appで共有コントラクトに対応する

久しぶり過ぎて忘れてたのでメモです。

まずは、こんな感じでDataTransferManagerのDataRequestedイベントを購読しておく。

var manager = DataTransferManager.GetForCurrentView();
manager.DataRequested += this.ShareDataRequested;

そうすると共有ボタンが押されたときにイベントが呼び出される。イベント内では、イベント引数にでーたを突っ込む。args.Request.Data.Properties.Title, args.Request.Data.Properties.Descriptionの2つと、args.Request.Data.SetXXX(XXXは設定したいデータの型の名前が大体はいる)を設定すればOK。

// なんかのデータとってきて
var currentEntry = this.Model.ItemModel.CurrentEntry;

// データをつめる(dataPackage変数がargs.Request.Dataね)
dataPackage.Properties.Title = currentEntry.Title;
dataPackage.Properties.Description = currentEntry.Summary;
dataPackage.SetWebLink(new Uri(currentEntry.Link));

共有コントラクトの共有画面をアプリから呼び出したいときはDataTransferManagerのShowShareUIを呼び出せばよい。

DataTransferManager.ShowShareUI();

本当久しぶり過ぎて忘れてた。