分享合約實現應用間的輕量級內容分享,分為「分享來源」與「分享目標」兩種角色。核心傳輸單元是 DataPackage,支援文字、連結、HTML、圖片、檔案等多種格式。

| 格式 | 設定方法 | 適用場景 |
|---|---|---|
| 純文字 | SetText() | 簡單文字分享 |
| URI | SetUri() | 網頁連結分享 |
| HTML | SetHtmlFormat() | 富文本內容分享 |
| 圖片 | SetBitmap() | 截圖、照片分享 |
| RTF | SetRtf() | 文件格式分享 |
| 自訂資料 | SetData() | 應用專用格式 |
| 檔案/資料夾 | SetStorageItems() | 檔案分享 |
private void OnDataRequested(DataTransferManager sender,
DataRequestedEventArgs args) {
var request = args.Request;
request.Data.Properties.Title = "分享標題";
request.Data.Properties.Description = "分享描述";
// 文字
request.Data.SetText("要分享的文字內容");
// 圖片
var imageStream = await Package.Current.InstalledLocation
.OpenStreamForReadAsync("Assets/share-image.png");
request.Data.SetBitmap(RandomAccessStreamReference.CreateFromStream(imageStream.AsRandomAccessStream()));
// 縮圖
request.Data.Properties.Thumbnail = RandomAccessStreamReference.CreateFromUri(
new Uri("ms-appx:///Assets/thumbnail.png"));
}


DataTransferManager,宣告 DataPackageDataRequested 事件填充資料包理解分享合約架構後,下一章將示範分享來源與目標的完整程式碼實作。