在 MAUI + Blazor 混合应用程序中从剪贴板获取图像数据

问题描述 投票:0回答:1

我正在开发 MAUI + Blazor 应用程序,我想创建一个图像字段组件。这个想法是,当我专注于组件并粘贴时,组件会获取剪贴板中的图像数据并渲染图像(就像 Google 的图像搜索或图形软件一样)。但我找不到办法做到这一点,MAUI 提供的剪贴板 api 仅限于文本数据。

我发现可以使用Windows.Forms包提供的剪贴板,我不知道它是否与MAUI兼容。

maui-blazor clipboarddata
1个回答
0
投票

您可以使用 WinUI 本机 api 来执行此操作。更多信息可以参考官方文档复制粘贴

#if WINDOWS
Windows.ApplicationModel.DataTransfer.Clipboard.ContentChanged += async (s, e) =>
 {
     var content = Windows.ApplicationModel.DataTransfer.Clipboard.GetContent();
   // the first if is used to detect the clipboard copies the image file on the pc
     if (content.Contains(Windows.ApplicationModel.DataTransfer.StandardDataFormats.StorageItems))
     {
         var value = await content.GetStorageItemsAsync();
         if(value.Count > 0)
         {
            Microsoft.UI.Xaml.Media.Imaging.BitmapImage bitmapImage = new();
            bitmapImage.SetSource( await (value[0] as Windows.Storage.StorageFile).OpenAsync(Windows.Storage.FileAccessMode.Read));
         }
     }
   // this if is used to detect the clipboard copies the image in the browser
     else if (content.Contains(Windows.ApplicationModel.DataTransfer.StandardDataFormats.Bitmap))
     {
         var bitmap = await content.GetBitmapAsync();
     }
 };
#endif
© www.soinside.com 2019 - 2024. All rights reserved.