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,DataRequestedEventArgs>(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


1 Response
Add your response


FYI, People App takes only URI objects, so don't be surprised when it doesn't show in available targets.

over 1 year ago ·
Awesome Job

Effa766a 9561 11e6 90e7 59326ba21768
Web Engineer
Remote within the United States
Full Time