Пример #1
0
        //private void ShowSharedRtf(DataPackageView shareData)
        //{
        //    //throw new NotImplementedException();
        //}

        private async Task ShowSharedHtml(DataPackageView shareData)
        {
            DefaultViewModel["IsHtmlShared"]  = true;
            DefaultViewModel["IsHtmlLoading"] = true;

            var sharedHtmlContent = await shareData.GetHtmlFormatAsync();

            if (!String.IsNullOrEmpty(sharedHtmlContent))
            {
                // Convert the shared content that contains extra header data into just the working fragment
                var sharedHtmlFragment = HtmlFormatHelper.GetStaticFragment(sharedHtmlContent);

                // Reconcile any resource-mapped image references
                var sharedResourceMap = await shareData.GetResourceMapAsync();

                foreach (var resource in sharedResourceMap)
                {
                    var mappedImageElement     = String.Format("<img src={0}>", resource.Key);
                    var replacementImageBase64 = await resource.Value.Base64EncodeContent();

                    var replacementImageElement = String.Format("<img src='data:image/png;base64,{0}' />", replacementImageBase64);
                    var imageIndex = sharedHtmlFragment.IndexOf(mappedImageElement, StringComparison.Ordinal);
                    while (imageIndex >= 0)
                    {
                        sharedHtmlFragment = sharedHtmlFragment.Remove(imageIndex, mappedImageElement.Length);
                        sharedHtmlFragment = sharedHtmlFragment.Insert(imageIndex, replacementImageElement);
                        imageIndex         = sharedHtmlFragment.IndexOf(mappedImageElement, StringComparison.Ordinal);
                    }
                }

                DefaultViewModel["IsHtmlLoading"] = false;
                DefaultViewModel["SharedHtml"]    = sharedHtmlFragment;
            }
        }
Пример #2
0
        private async Task PasteHtmlFormat(DataPackageView dataPackageView)
        {
            var html = await dataPackageView.GetHtmlFormatAsync();

            var htmlFragment = HtmlFormatHelper.GetStaticFragment(html);
            await noteFieldView.HtmlEditor.InsertHtml(htmlFragment);
        }
Пример #3
0
        private async void OnRichEditBoxPaste(object sender, TextControlPasteEventArgs e)
        {
            try
            {
                DataPackageView dataPackageView = Clipboard.GetContent();
                string          text            = null;
                string          html            = null;

                if (dataPackageView.Contains(StandardDataFormats.Text))
                {
                    text = await dataPackageView.GetTextAsync();
                }

                if (dataPackageView.Contains(StandardDataFormats.Html))
                {
                    html = await dataPackageView.GetHtmlFormatAsync();
                }

                // lots of hack, but basically, it's just for OneNote...
                if (this.rtbNotes.Document.Selection != null && html != null && html.Contains("Version:1.0") && !html.Contains("SourceURL") && html.Contains("<meta name=Generator content=\"Microsoft OneNote"))
                {
                    this.rtbNotes.Document.Selection.TypeText(text);
                    e.Handled = true;
                }
            }
            catch (Exception ex)
            {
                TrackingManagerHelper.Exception(ex, "Exception while pasting data: " + ex);
                e.Handled = false;
            }
        }
Пример #4
0
        // 显示剪切板中的 html 数据
        private async void btnPasteHtml_Click(object sender, RoutedEventArgs e)
        {
            DataPackageView dataPackageView = Windows.ApplicationModel.DataTransfer.Clipboard.GetContent();

            if (dataPackageView.Contains(StandardDataFormats.Html))
            {
                try
                {
                    // 封装后的数据
                    string htmlFormat = await dataPackageView.GetHtmlFormatAsync();

                    // 封装前的数据
                    string htmlFragment = HtmlFormatHelper.GetStaticFragment(htmlFormat);

                    lblMsg.Text  = "htmlFormat(封装后的数据): ";
                    lblMsg.Text += Environment.NewLine;
                    lblMsg.Text += htmlFormat;
                    lblMsg.Text += Environment.NewLine;
                    lblMsg.Text += Environment.NewLine;
                    lblMsg.Text += "htmlFragment(封装前的数据): ";
                    lblMsg.Text += Environment.NewLine;
                    lblMsg.Text += htmlFragment;
                }
                catch (Exception ex)
                {
                    lblMsg.Text = ex.ToString();
                }
            }
            else
            {
                lblMsg.Text = "剪切板中无 html 内容";
            }
        }
Пример #5
0
        private static async Task ProcessComandsAsync(DropConfiguration configuration, DataPackageView dataview)
        {
            if (configuration.OnDropDataViewCommand != null)
            {
                configuration.OnDropDataViewCommand.Execute(dataview);
            }


            if (dataview.Contains(StandardDataFormats.ApplicationLink) && configuration.OnDropApplicationLinkCommand != null)
            {
                var uri = await dataview.GetApplicationLinkAsync();

                configuration.OnDropApplicationLinkCommand.Execute(uri);
            }

            if (dataview.Contains(StandardDataFormats.Bitmap) && configuration.OnDropBitmapCommand != null)
            {
                var stream = await dataview.GetBitmapAsync();

                configuration.OnDropBitmapCommand.Execute(stream);
            }

            if (dataview.Contains(StandardDataFormats.Html) && configuration.OnDropHtmlCommand != null)
            {
                var html = await dataview.GetHtmlFormatAsync();

                configuration.OnDropHtmlCommand.Execute(html);
            }

            if (dataview.Contains(StandardDataFormats.Rtf) && configuration.OnDropRtfCommand != null)
            {
                var rtf = await dataview.GetRtfAsync();

                configuration.OnDropRtfCommand.Execute(rtf);
            }

            if (dataview.Contains(StandardDataFormats.StorageItems) && configuration.OnDropStorageItemsCommand != null)
            {
                var storageItems = await dataview.GetStorageItemsAsync();

                configuration.OnDropStorageItemsCommand.Execute(storageItems);
            }

            if (dataview.Contains(StandardDataFormats.Text) && configuration.OnDropTextCommand != null)
            {
                var text = await dataview.GetTextAsync();

                configuration.OnDropTextCommand.Execute(text);
            }

            if (dataview.Contains(StandardDataFormats.WebLink) && configuration.OnDropWebLinkCommand != null)
            {
                var uri = await dataview.GetWebLinkAsync();

                configuration.OnDropWebLinkCommand.Execute(uri);
            }
        }
        public async Task ProcessComandsAsync(DataPackageView dataview)
        {
            if (DropDataViewAction != null)
            {
                DropDataViewAction.Invoke(dataview);
            }

            if (dataview.Contains(StandardDataFormats.ApplicationLink) && DropApplicationLinkAction != null)
            {
                Uri uri = await dataview.GetApplicationLinkAsync();

                DropApplicationLinkAction.Invoke(uri);
            }

            if (dataview.Contains(StandardDataFormats.Bitmap) && DropBitmapAction != null)
            {
                RandomAccessStreamReference stream = await dataview.GetBitmapAsync();

                DropBitmapAction.Invoke(stream);
            }

            if (dataview.Contains(StandardDataFormats.Html) && DropHtmlAction != null)
            {
                string html = await dataview.GetHtmlFormatAsync();

                DropHtmlAction.Invoke(html);
            }

            if (dataview.Contains(StandardDataFormats.Rtf) && DropRtfAction != null)
            {
                string rtf = await dataview.GetRtfAsync();

                DropRtfAction.Invoke(rtf);
            }

            if (dataview.Contains(StandardDataFormats.StorageItems) && DropStorageItemsAction != null)
            {
                IReadOnlyList <IStorageItem> storageItems = await dataview.GetStorageItemsAsync();

                DropStorageItemsAction.Invoke(storageItems);
            }

            if (dataview.Contains(StandardDataFormats.Text) && DropTextAction != null)
            {
                string text = await dataview.GetTextAsync();

                DropTextAction.Invoke(text);
            }

            if (dataview.Contains(StandardDataFormats.WebLink) && DropWebLinkAction != null)
            {
                Uri uri = await dataview.GetWebLinkAsync();

                DropWebLinkAction.Invoke(uri);
            }
        }
Пример #7
0
        public async Task ProcessComandsAsync(DataPackageView dataview)
        {
            if (DropDataViewAction != null)
            {
                DropDataViewAction.Invoke(dataview);
            }

            if (dataview.Contains(StandardDataFormats.ApplicationLink) && DropApplicationLinkAction != null)
            {
                var uri = await dataview.GetApplicationLinkAsync();

                DropApplicationLinkAction.Invoke(uri);
            }

            if (dataview.Contains(StandardDataFormats.Bitmap) && DropBitmapAction != null)
            {
                var stream = await dataview.GetBitmapAsync();

                DropBitmapAction.Invoke(stream);
            }

            if (dataview.Contains(StandardDataFormats.Html) && DropHtmlAction != null)
            {
                var html = await dataview.GetHtmlFormatAsync();

                DropHtmlAction.Invoke(html);
            }

            if (dataview.Contains(StandardDataFormats.Rtf) && DropRtfAction != null)
            {
                var rtf = await dataview.GetRtfAsync();

                DropRtfAction.Invoke(rtf);
            }

            if (dataview.Contains(StandardDataFormats.StorageItems) && DropStorageItemsAction != null)
            {
                var storageItems = await dataview.GetStorageItemsAsync();

                DropStorageItemsAction.Invoke(storageItems);
            }

            if (dataview.Contains(StandardDataFormats.Text) && DropTextAction != null)
            {
                var text = await dataview.GetTextAsync();

                DropTextAction.Invoke(text);
            }

            if (dataview.Contains(StandardDataFormats.WebLink) && DropWebLinkAction != null)
            {
                var uri = await dataview.GetWebLinkAsync();

                DropWebLinkAction.Invoke(uri);
            }
        }
Пример #8
0
        private async void HandleDataPackage(DataPackageView data, string imagefilename)
        {
            if (data.Contains(StandardDataFormats.StorageItems))
            {
                foreach (var file in await data.GetStorageItemsAsync())
                {
                    AddAttachement(file as StorageFile);
                }
            }
            else if (data.Contains(StandardDataFormats.Bitmap))
            {
                var bmpDPV = await data.GetBitmapAsync();

                var bmpSTR = await ApplicationData.Current.TemporaryFolder.CreateFileAsync(imagefilename + ".png", CreationCollisionOption.OpenIfExists);

                using (var writeStream = (await bmpSTR.OpenStreamForWriteAsync()).AsRandomAccessStream())
                    using (var readStream = await bmpDPV.OpenReadAsync())
                    {
                        BitmapDecoder decoder = await BitmapDecoder.CreateAsync(readStream.CloneStream());

                        BitmapEncoder encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, writeStream);

                        encoder.SetSoftwareBitmap(await decoder.GetSoftwareBitmapAsync());
                        await encoder.FlushAsync();

                        AddAttachement(bmpSTR);
                    }
            }
            else if (data.Contains(StandardDataFormats.Text))
            {
                Editor.Text = await data.GetTextAsync();
            }
            else if (data.Contains(StandardDataFormats.WebLink))
            {
                Editor.Text = (await data.GetWebLinkAsync()).ToString();
            }
            else if (data.Contains(StandardDataFormats.ApplicationLink))
            {
                Editor.Text = (await data.GetApplicationLinkAsync()).ToString();
            }
            else if (data.Contains(StandardDataFormats.Html))
            {
                var converter = new Html2Markdown.Converter();
                Editor.Text = converter.Convert(await data.GetHtmlFormatAsync());
            }
        }
Пример #9
0
        // クリップボードでは、ローミングされてきたら true になる
        // 履歴では常に false



        protected async Task SetDataAsync(DataPackageView content)
        {
            this.OriginalContent        = content;
            this.AvailableFormats       = content.AvailableFormats?.ToList() ?? (new List <string>());
            this.IsFromRoamingClipboard = content.Properties.IsFromRoamingClipboard;

            // テキストデータ(該当するデータが複数あるときは、最後のもの)
            this.TextHead = string.Empty; this.TextSize = 0;

            if (content.Contains(StandardDataFormats.Html)) //"HTML Format"
            {
                this.TextHead = await content.GetHtmlFormatAsync();
            }
            if (content.Contains(StandardDataFormats.WebLink)) //"UniformResourceLocatorW"
            {
                this.TextHead = (await content.GetWebLinkAsync()).ToString();
            }
            if (content.Contains(StandardDataFormats.Text)) //"Text"
            {
                this.TextHead = await content.GetTextAsync();
            }
            this.TextSize = this.TextHead.Length * sizeof(char);

            if (this.TextHead.Length > TextHeadMaxLength)
            {
                this.TextHead = $"{this.TextHead.Substring(0, TextHeadMaxLength)}(以下略)";
            }

            // ビットマップデータ
            this.Bitmap = new BitmapImage(); this.BitmapSize = 0;
            if (content.Contains(StandardDataFormats.Bitmap)) //"Bitmap"
            {
                RandomAccessStreamReference stRef = await content.GetBitmapAsync();

                using (IRandomAccessStreamWithContentType stream = await stRef.OpenReadAsync())
                {
                    this.Bitmap.SetSource(stream);
                    this.BitmapSize = stream.Size;
                }
            }
        }
Пример #10
0
        private static async Task <DataObject> ToDataObject(DataPackageView src, CancellationToken ct)
        {
            var dst = new DataObject();

            // WPF has no format for URI therefore text is used for both
            if (src.Contains(StandardDataFormats.Text))
            {
                dst.SetText(await src.GetTextAsync().AsTask(ct));
            }
            else
            {
                var uri = DataPackage.CombineUri(
                    src.Contains(StandardDataFormats.WebLink) ? (await src.GetWebLinkAsync().AsTask(ct)).ToString() : null,
                    src.Contains(StandardDataFormats.ApplicationLink) ? (await src.GetApplicationLinkAsync().AsTask(ct)).ToString() : null,
                    src.Contains(StandardDataFormats.Uri) ? (await src.GetUriAsync().AsTask(ct)).ToString() : null);

                if (string.IsNullOrEmpty(uri) == false)
                {
                    dst.SetText(uri);
                }
            }

            if (src.Contains(StandardDataFormats.Html))
            {
                dst.SetData(DataFormats.Html, await src.GetHtmlFormatAsync().AsTask(ct));
            }

            if (src.Contains(StandardDataFormats.Rtf))
            {
                dst.SetData(DataFormats.Rtf, await src.GetRtfAsync().AsTask(ct));
            }

            if (src.Contains(StandardDataFormats.Bitmap))
            {
                var srcStreamRef = await src.GetBitmapAsync().AsTask(ct);

                var srcStream = await srcStreamRef.OpenReadAsync().AsTask(ct);

                // We copy the source stream in memory to avoid marshalling issue with async stream
                // and to make sure to read it async as it built from a RandomAccessStream which might be remote.
                using var tmp = new MemoryStream();
                await srcStream.AsStreamForRead().CopyToAsync(tmp);

                tmp.Position = 0;

                var dstBitmap = new BitmapImage();
                dstBitmap.BeginInit();
                dstBitmap.CreateOptions = BitmapCreateOptions.None;
                dstBitmap.CacheOption   = BitmapCacheOption.OnLoad;               // Required for the BitmapImage to internally cache the data (so we can dispose the tmp stream)
                dstBitmap.StreamSource  = tmp;
                dstBitmap.EndInit();

                dst.SetData(DataFormats.Bitmap, dstBitmap, false);
            }

            if (src.Contains(StandardDataFormats.StorageItems))
            {
                var files = await src.GetStorageItemsAsync().AsTask(ct);

                var paths = new StringCollection();
                foreach (var item in files)
                {
                    paths.Add(item.Path);
                }

                dst.SetFileDropList(paths);
            }

            return(dst);
        }
Пример #11
0
 IAsyncOperation <string> IDataPackageViewResolver.GetHtmlFormatAsync(DataPackageView dataPackageView) => dataPackageView.GetHtmlFormatAsync();
Пример #12
0
        public static async Task CopyTo(this DataPackageView view, IDictionary<string, object> values)
        {
            foreach (var format in view.AvailableFormats)
            {
                try
                {
                    if (format == StandardDataFormats.Bitmap)
                    {
                        var value = await view.GetBitmapAsync();
                        values.Add(format, value);
                    }
                    else if (format == StandardDataFormats.Html)
                    {
                        var value = await view.GetHtmlFormatAsync();
                        values.Add(format, value);

                        if (!values.ContainsKey(StandardDataFormats.Text))
                            values.Add(StandardDataFormats.Text, value);
                    }
                    else if (format == StandardDataFormats.Rtf)
                    {
                        var value = await view.GetRtfAsync();
                        values.Add(format, value);

                        if (!values.ContainsKey(StandardDataFormats.Text))
                            values.Add(StandardDataFormats.Text, value);
                    }
                    else if (format == StandardDataFormats.StorageItems)
                    {
                        var value = await view.GetStorageItemsAsync();
                        var extensions = value.Select(f => "*" + Path.GetExtension(f.Name)).ToArray();
                        values.Add("extensions", extensions);
                        values.Add(format, value);

                        if (value.Count() == 1)
                        {
                            var file = value.OfType<StorageFile>().SingleOrDefault();
                            if(file != null && file.Attributes.HasFlag(FileAttributes.Temporary))
                            {
                                var copiedFile = await file.CopyAsync(
                                    ApplicationData.Current.LocalFolder,
                                    file.Name,
                                    NameCollisionOption.ReplaceExisting);

                                values[format] = new[] { copiedFile };
                            }

                            if (!values.ContainsKey(StandardDataFormats.Bitmap))
                            {
                                var stream = RandomAccessStreamReference.CreateFromFile(file);
                                values.Add(StandardDataFormats.Bitmap, stream);
                            }
                        }
                    }
                    else if (format == StandardDataFormats.Text)
                    {
                        var value = await view.GetTextAsync();
                        values.Add(format, value);
                    }
                    else if (format == StandardDataFormats.ApplicationLink)
                    {
                        var value = await view.GetApplicationLinkAsync();
                        values.Add(format, value);
                        if (!values.ContainsKey(StandardDataFormats.Text))
                            values.Add(StandardDataFormats.Text, value.ToString());
                    }
                    else if (format == StandardDataFormats.WebLink)
                    {
                        var value = await view.GetWebLinkAsync();
                        values.Add(format, value);

                        if (!values.ContainsKey(StandardDataFormats.Text))
                            values.Add(StandardDataFormats.Text, value.ToString());
                    }
                    else if (ValidFormat(format))
                    {
                        var value = await view.GetDataAsync(format);
                        values.Add(format, value);
                    }
                }
                catch (SecurityException) { throw; }
                catch
                {
                    // Some formats are incompatible with WinRT and can cause it to throw unexpectedly.
                    // guard against it and give a best effort copy of the available formats that are supported.
                }
            }
        }
Пример #13
0
        private static async Task <ReceivedShareItem> FetchDataFromPackageViewAsync(DataPackageView packageView)
        {
            var rval = new ReceivedShareItem()
            {
                Title                        = packageView.Properties.Title,
                Description                  = packageView.Properties.Description,
                PackageFamilyName            = packageView.Properties.PackageFamilyName,
                ContentSourceWebLink         = packageView.Properties.ContentSourceWebLink,
                ContentSourceApplicationLink = packageView.Properties.ContentSourceApplicationLink,
                LogoBackgroundColor          = packageView.Properties.LogoBackgroundColor,
            };

            if (packageView.Properties.Square30x30Logo != null)
            {
                using (var logoStream = await packageView.Properties.Square30x30Logo.OpenReadAsync())
                {
                    var logo = new MemoryStream();
                    await logoStream.AsStreamForRead().CopyToAsync(logo);

                    logo.Position = 0;
                    var str = Convert.ToBase64String(logo.ToArray());
                    //rval.Square30x30LogoBase64 = Convert.ToBase64String(logo.ToArray());
                    rval.Square30x30Logo = new Models.MemoryStreamBase64Item {
                        Base64String = str
                    };
                }
            }
            if (packageView.Properties.Thumbnail != null)
            {
                using (var thumbnailStream = await packageView.Properties.Thumbnail.OpenReadAsync())
                {
                    var thumbnail = new MemoryStream();
                    await thumbnailStream.AsStreamForRead().CopyToAsync(thumbnail);

                    thumbnail.Position = 0;
                    var str = Convert.ToBase64String(thumbnail.ToArray());
                    rval.Thumbnail = new Models.MemoryStreamBase64Item {
                        Base64String = str
                    };
                }
            }

            if (packageView.Contains(StandardDataFormats.WebLink))
            {
                try
                {
                    var link = new WebLinkShareItem
                    {
                        WebLink = await packageView.GetWebLinkAsync()
                    };

                    rval.AvialableShareItems.Add(link);
                }
                catch (Exception ex)
                {
                    //NotifyUserBackgroundThread("Failed GetWebLinkAsync - " + ex.Message, NotifyType.ErrorMessage);
                }
            }
            if (packageView.Contains(StandardDataFormats.ApplicationLink))
            {
                try
                {
                    var sharedApplicationLink = new ApplicationLinkShareItem
                    {
                        ApplicationLink = await packageView.GetApplicationLinkAsync()
                    };
                    rval.AvialableShareItems.Add(sharedApplicationLink);
                }
                catch (Exception ex)
                {
                    //NotifyUserBackgroundThread("Failed GetApplicationLinkAsync - " + ex.Message, NotifyType.ErrorMessage);
                }
            }
            if (packageView.Contains(StandardDataFormats.Text))
            {
                try
                {
                    var sharedText = new TextShareItem {
                        Text = await packageView.GetTextAsync()
                    };
                    rval.AvialableShareItems.Add(sharedText);
                    rval.Text = await packageView.GetTextAsync();

                    //rval.GetValueContainer(x => x.Text)
                    //      .GetNullObservable()
                    //	.Subscribe(e => sharedText.Text = rval.Text)
                    //	.DisposeWith(rval);
                    sharedText.GetValueContainer(x => x.Text)
                    .GetNullObservable()
                    .Subscribe(e => rval.Text = sharedText.Text)
                    .DisposeWith(rval);
                }
                catch (Exception ex)
                {
                    //NotifyUserBackgroundThread("Failed GetTextAsync - " + ex.Message, NotifyType.ErrorMessage);
                }
            }
            if (packageView.Contains(StandardDataFormats.StorageItems))
            {
                try
                {
                    var files = await packageView.GetStorageItemsAsync();

                    var sharedStorageItem = new FilesShareItem
                    {
                        StorageFiles = new ObservableCollection <FileItem>()
                                       //StorageItems =
                    };
                    foreach (StorageFile sf in files)
                    {
                        var guidString = Guid.NewGuid().ToString();
                        StorageApplicationPermissions.FutureAccessList.AddOrReplace(guidString, sf, sf.Name);
                        var ts = await sf.GetScaledImageAsThumbnailAsync(Windows.Storage.FileProperties.ThumbnailMode.VideosView);

                        var tmbs = new MemoryStream();
                        await ts.AsStreamForRead().CopyToAsync(tmbs);

                        var file = new FileItem
                        {
                            AccessToken  = guidString,
                            ContentType  = sf.ContentType,
                            FileName     = sf.DisplayName,
                            PossiblePath = sf.Path,
                            Thumbnail    = new Models.MemoryStreamBase64Item(tmbs.ToArray())
                        };

                        sharedStorageItem.StorageFiles.Add(file);
                    }
                    //StorageApplicationPermissions.FutureAccessList.AddOrReplace()

                    rval.AvialableShareItems.Add(sharedStorageItem);
                }
                catch (Exception ex)
                {
                    //NotifyUserBackgroundThread("Failed GetStorageItemsAsync - " + ex.Message, NotifyType.ErrorMessage);
                }
            }
            //if (packageView.Contains(dataFormatName))
            //{
            //	try
            //	{
            //		this.sharedCustomData = await packageView.GetTextAsync(dataFormatName);
            //	}
            //	catch (Exception ex)
            //	{
            //		//NotifyUserBackgroundThread("Failed GetTextAsync(" + dataFormatName + ") - " + ex.Message, NotifyType.ErrorMessage);
            //	}
            //}
            if (packageView.Contains(StandardDataFormats.Html))
            {
                var sharedHtmlFormatItem = new HtmlShareItem();
                var sharedHtmlFormat     = string.Empty;
                try
                {
                    sharedHtmlFormat = await packageView.GetHtmlFormatAsync();

                    //sharedHtmlFormatItem.HtmlFormat = sharedHtmlFormat;
                    sharedHtmlFormatItem.HtmlFragment = HtmlFormatHelper.GetStaticFragment(sharedHtmlFormat);
                }
                catch (Exception ex)
                {
                    //NotifyUserBackgroundThread("Failed GetHtmlFormatAsync - " + ex.Message, NotifyType.ErrorMessage);
                }
                //try
                //{
                //	var sharedResourceMap = await packageView.GetResourceMapAsync();
                //}
                //catch (Exception ex)
                //{
                //	//NotifyUserBackgroundThread("Failed GetResourceMapAsync - " + ex.Message, NotifyType.ErrorMessage);
                //}

                //if (packageView.Contains(StandardDataFormats.WebLink))
                //{
                //	try
                //	{
                //		sharedHtmlFormatItem.WebLink = await packageView.GetWebLinkAsync();
                //	}
                //	catch (Exception ex)
                //	{
                //		//NotifyUserBackgroundThread("Failed GetWebLinkAsync - " + ex.Message, NotifyType.ErrorMessage);
                //	}
                //}
                rval.AvialableShareItems.Add(sharedHtmlFormatItem);
            }
            if (packageView.Contains(StandardDataFormats.Bitmap))
            {
                try
                {
                    var fi = await packageView.GetBitmapAsync();

                    using (var imgFileStream = await fi.OpenReadAsync())
                    {
                        var saveTargetStream = new InMemoryRandomAccessStream();

                        var bitmapSourceStream = imgFileStream;

                        await ServiceLocator
                        .Instance
                        .Resolve <IImageConvertService>()
                        .ConverterBitmapToTargetStreamAsync(bitmapSourceStream, saveTargetStream);

                        saveTargetStream.Seek(0);
                        var sr     = saveTargetStream.GetInputStreamAt(0);
                        var source = sr.AsStreamForRead();

                        var ms = new MemoryStream();
                        await source.CopyToAsync(ms);

                        var sharedBitmapStreamRef = new DelayRenderedImageShareItem
                        {
                            SelectedImage = new Models.MemoryStreamBase64Item(ms.ToArray())
                        };

                        rval.AvialableShareItems.Add(sharedBitmapStreamRef);
                    }
                }
                catch (Exception ex)
                {
                    //NotifyUserBackgroundThread("Failed GetBitmapAsync - " + ex.Message, NotifyType.ErrorMessage);
                }
            }

            //foreach (var item in rval.AvialableShareItems)
            //{
            //	//item.ContentSourceApplicationLink = rval.ContentSourceApplicationLink;
            //	//item.ContentSourceWebLink = rval.ContentSourceWebLink;
            //	//item.DefaultFailedDisplayText = rval.DefaultFailedDisplayText;
            //	//item.Description = rval.Description;
            //	//item.Title = rval.Title;
            //}
            return(rval);
        }