2016-11-25 95 views

回答

-1

您可以使用共享合同,一些數據發送到兼容的應用程序(包括Outlook)。它允許您與任何兼容的應用程序共享一些文本和數據。

要啓動共享,您只需要註冊到DataRequested事件並顯示共享UI:

DataTransferManager.GetForCurrentView().DataRequested += OnDataRequested; 
DataTransferManager.ShowShareUI(); 

然後,在事件處理程序:

private async void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs args) 
{ 
    var deferral = args.Request.GetDeferral(); 

    try 
    { 
     args.Request.Data.Properties.Title   = "Share Title" 
     args.Request.Data.Properties.Description = "Share some data/file"; 
     var file         = await ApplicationData.Current.TemporaryFolder.GetFileAsync("myFileToShare.xxx"); 
     args.Request.Data.SetStorageItems(new IStorageItem[] { logFile }); 
    } 
    catch 
    { 
     args.Request.FailWithDisplayText("Unable to share data"); 
    } 
    finally 
    { 
     deferral.Complete(); 
     sender.DataRequested -= OnDataRequested; 
    } 
} 

一旦完成,系統將顯示共享UI,其中用戶可以選擇他想要的應用程序。這個應用程序將收到發送的數據。

-1

雖然文森特@的答案是完美的,當你想使用分享合同,如果你想使用不僅僅是電子郵件和附加文件,下面是一個簡單的方法,我在我的應用程序之一使用。

internal async void ShowEmail(string body, string subject, StorageFile attachment) 
{ 
    EmailMessage email = new EmailMessage(); 
    email.Subject = subject; 
    email.Body = body; 

    var stream = RandomAccessStreamReference.CreateFromFile(attachment); 
    email.SetBodyStream(EmailMessageBodyKind.Html, stream); 

    await EmailManager.ShowComposeNewEmailAsync(email); 
} 

上述方法的例子下來條從Here

+0

這不會工作,如果(a)你有Outlook作爲默認的電子郵件應用程序(或任何其他的Win32應用程序)和(b)未啓動的Outlook以前或(c)如果您嘗試添加附件 – pixel

相關問題