protected override async Task ExecuteAsync(ClipboardImplementationViewModel parameter)
            {
                var dataObject = new DataObject();

                DataObjectExtensions.SetLinkedWClipboardId(dataObject, parameter.Model.ClipboardObject.Id);

                await parameter.Model.Factory.WriteToDataObject(parameter.Model, dataObject);

                SysClipboard.SetDataObject(dataObject, false);
            }
            protected override void Execute(BitmapImplementationViewModel parameter)
            {
                var option = (BitmapFileOption)setting.GetResolvedValue();

                var fileName = tempManager.Value.GetNewFileName(option.Extension);

                parameter.Model.GetImage().Save(fileName, option.CreateEncoder());

                var dataObject = new DataObject();

                DataObjectExtensions.SetLinkedWClipboardId(dataObject, parameter.Model.ClipboardObject.Id);
                dataObject.SetFileDropList(fileName);
                Clipboard.SetDataObject(dataObject);
            }
            protected override async void Execute(TextClipboardImplementationViewModel parameter)
            {
                var fileName = _tempManager.Value.GetNewFileName("txt");

                using (var sw = new StreamWriter(fileName, false, Encoding.Unicode))
                {
                    await sw.WriteAsync(parameter.Model.Source).ConfigureAwait(true);
                }
                var dataObject = new DataObject();

                DataObjectExtensions.SetLinkedWClipboardId(dataObject, parameter.Model.ClipboardObject.Id);
                dataObject.SetFileDropList(fileName);
                Clipboard.SetDataObject(dataObject);
            }
Esempio n. 4
0
        public static async Task <DataObject> GetDataObject(this ClipboardObject clipboardObject)
        {
            var dataObject = new DataObject();

            DataObjectExtensions.SetWClipboardId(dataObject, clipboardObject.Id);
            if (clipboardObject.Linked != null)
            {
                DataObjectExtensions.SetLinkedWClipboardId(dataObject, clipboardObject.Linked.Id);
            }

            foreach (var implementation in clipboardObject.Implementations)
            {
                await implementation.Factory.WriteToDataObject(implementation, dataObject);
            }

            return(dataObject);
        }