• UWP 剪贴板 Clipboard


    Clipboard使用Windows.ApplicationModel.DataTransfer.Clipboard

    设置文本

    DataPackage dataPackage = new DataPackage();
    dataPackage.SetText("文本");
    Clipboard.SetContent(dp);

    获取文本

    检查剪贴板包含文本

    DataPackageView con = Windows.ApplicationModel.DataTransfer.Clipboard.GetContent();
    if (con.Contains(StandardDataFormats.Text))
    {
    
                DataPackageView con = Windows.ApplicationModel.DataTransfer.Clipboard.GetContent();
                string str = string.Empty;
                if (con.Contains(StandardDataFormats.Text))
                {
                    str = await con.GetTextAsync();
                }
    }

    获取图片

    if (con.Contains(StandardDataFormats.Bitmap))
                {
                    RandomAccessStreamReference img = await con.GetBitmapAsync();
                    var imgstream = await img.OpenReadAsync();
                    BitmapImage bitmap = new BitmapImage();
                    bitmap.SetSource(imgstream);
    
                    Windows.UI.Xaml.Media.Imaging.WriteableBitmap src = new Windows.UI.Xaml.Media.Imaging.WriteableBitmap(bitmap.PixelWidth, bitmap.PixelHeight);
                    src.SetSource(imgstream);
    
                    Windows.Graphics.Imaging.BitmapDecoder decoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(imgstream);
                    Windows.Graphics.Imaging.PixelDataProvider pxprd = await decoder.GetPixelDataAsync(Windows.Graphics.Imaging.BitmapPixelFormat.Bgra8, Windows.Graphics.Imaging.BitmapAlphaMode.Straight, new Windows.Graphics.Imaging.BitmapTransform(), Windows.Graphics.Imaging.ExifOrientationMode.RespectExifOrientation, Windows.Graphics.Imaging.ColorManagementMode.DoNotColorManage);
                    byte[] buffer = pxprd.DetachPixelData();
    
                    str = "image";
                    StorageFolder folder = await _folder.GetFolderAsync(str);
    
                    StorageFile file = await folder.CreateFileAsync(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + ".png", CreationCollisionOption.GenerateUniqueName);
    
                    using (var fileStream = await file.OpenAsync(FileAccessMode.ReadWrite))
                    {
                        var encoder = await Windows.Graphics.Imaging.BitmapEncoder.CreateAsync(Windows.Graphics.Imaging.BitmapEncoder.PngEncoderId, fileStream);
                        encoder.SetPixelData(Windows.Graphics.Imaging.BitmapPixelFormat.Bgra8, Windows.Graphics.Imaging.BitmapAlphaMode.Straight, decoder.PixelWidth, decoder.PixelHeight, decoder.DpiX, decoder.DpiY, buffer);
                        await encoder.FlushAsync();
                    }
                }

    获取文件

                if (con.Contains(StandardDataFormats.StorageItems))
                {
                    var filelist = await con.GetStorageItemsAsync();
                    foreach (StorageFile t in filelist)
                    {
    
                    }
                }

    IStorageItem 转 StorageFile

    if (t.IsOfType(StorageItemTypes.File))
                        {
                            StorageFile storageFile = storageItem as StorageFile;
                        }

    参考 https://blog.csdn.net/lindexi_gd/article/details/50479180

  • 相关阅读:
    寻找两个正序数组的中位数
    06Go语言数组和切片
    缺失的第一个正数
    linux 学习笔记001
    MyBatisPlus使用
    MyBatis(六)MyBatis使用事务
    Spring学习(八)Spring集成Log4J日志
    Spring学习(五)Spring 基于注解装配Bean
    使用Azure DevOps 进行 docker .net core 自动部署
    MyBatis(五)MyBatis动态SQL
  • 原文地址:https://www.cnblogs.com/hupo376787/p/8890746.html
Copyright © 2020-2023  润新知