Esempio n. 1
0
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // METHODS //////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private async void ViewModel_TargetedShareUiRequested(object sender, EventArgs e)
        {
            Rect           rectangle;
            ShareUIOptions shareUIOptions = new ShareUIOptions();

            await RunOnUIThreadAsync(CoreDispatcherPriority.Normal, () =>
            {
                GeneralTransform transform;
                transform = AppBarButtonShare.TransformToVisual(null);
                rectangle = transform.TransformBounds(new Rect(0, 0, AppBarButtonShare.ActualWidth, AppBarButtonShare.ActualHeight));
                shareUIOptions.SelectionRect = rectangle;

                DataTransferManager.ShowShareUI(shareUIOptions);
            });
        }
        public async Task <bool> ShowShareUIAsync(ShareUIOptions options, DataPackage dataPackage)
        {
            if (!PrivilegeHelper.IsDeclared(LaunchAppPrivilege))
            {
                if (this.Log().IsEnabled(LogLevel.Error))
                {
                    this.Log().LogError($"The Launch app privilege must be declared ({LaunchAppPrivilege})");
                }
                return(false);
            }

            var appControl = new AppControl
            {
                Operation = AppControlOperations.ShareText,
            };

            var dataPackageView = dataPackage.GetView();

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

                appControl.ExtraData.Add(AppControlData.Text, text);
            }

            var uri = await DataTransferManager.GetSharedUriAsync(dataPackageView);

            if (uri != null)
            {
                appControl.ExtraData.Add(AppControlData.Url, uri.OriginalString);
            }

            AppControl.SendLaunchRequest(appControl);

            return(true);
        }