Sharing to Facebook/Twitter from Windows 8/WinRT App

Sharing on “Metro style”/”Windows Store” app is a bit different from what we used to. Instead of invoking it directly in code, Microsoft encourages us to use the centralised “charm” bar where we would then implement a page event handler to fill in details to share.

To personalise share details, we would fill a DataPackage that would then be used across various media such as email or message or other apps.

To start, you can use


to get the current page’s DataTransferManager. The instance has an event called DataRequested that you can respond to to fill in details whenever the user chooses to share something via the charms bar.

So on OnNavigatedTo of the page, you can do

dataTransferManager = DataTransferManager.GetForCurrentView();
dataTransferManager.DataRequested += new TypedEventHandler(dataTransferManager_DataRequested);

and declare

private void dataTransferManager_DataRequested(DataTransferManager sender, DataRequestedEventArgs e)
DataPackage requestData = e.Request.Data;
requestData.Properties.Title = something;
requestData.Properties.Thumbnail = RandomAccessStreamReference.CreateFromUri(new Uri(someURL));
if (!string.IsNullOrEmpty(article.URL)) requestData.SetUri(new Uri(someOtherURL));

There’s of course more stuff you can set by referring to

To get the charm bar share view to show up programmatically, you can use