WPF 复制粘贴到系统粘贴板

这篇具有很好参考价值的文章主要介绍了WPF 复制粘贴到系统粘贴板。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

复制或剪切文件到剪切板

/// <summary>
        /// 复制或剪切文件到剪切板
        /// </summary>
        /// <param name="files">文件路径数组</param>
        /// <param name="cut">true:剪切;false:复制</param>
        public static void CopyToClipboard(string[] files, bool cut)
        {
            if (files == null) return;
            IDataObject data = new DataObject(DataFormats.FileDrop, files);
            MemoryStream memo = new MemoryStream(4);
            byte[] bytes = new byte[] { (byte)(cut?2:5),0,0,0};
            memo.Write(bytes,0,bytes.Length);
            data.SetData("PreferredDropEffect",memo);
            Clipboard.SetDataObject(data,false);
        }

复制文本

  private void La_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            StackPanel st = e.Source as StackPanel;
            StringBuilder Copystr = new StringBuilder();
            foreach (TextBox tb in GetChildObjects<TextBox>(st))
            {
                Copystr.Append(" ");
                Copystr.Append(tb.Text);
                SolidColorBrush myBrush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(0xFF, 0xad, 0xd6, 0xff));
                tb.Background = myBrush;
            }
            Clipboard.SetText(Copystr.ToString());
            MessageToolTip.Show("数据复制成功");
        }

保存图片

// UI --> Png
public static void UISaveToPng(this FrameworkElement ui, string fileName)
{
    int width = (int)ui.ActualWidth;
    int height = (int)ui.ActualHeight;
    RenderTargetBitmap bmp = new RenderTargetBitmap(width, height, 96d, 96d, PixelFormats.Pbgra32);
    bmp.Render(ui);
    PngBitmapEncoder encoder = new PngBitmapEncoder();
    encoder.Frames.Add(BitmapFrame.Create(bmp));
    FileStream fs = new FileStream(fileName, FileMode.Create);
    encoder.Save(fs);
    fs.Close();
}

转BitmapImage

int width = (int)grid2DMap.ActualWidth;
int height = (int)grid2DMap.ActualHeight;
RenderTargetBitmap bmp = new RenderTargetBitmap(width, height, 96d, 96d, PixelFormats.Pbgra32);
bmp.Render(grid2DMap);
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmp));
BitmapImage bitmapImage = new BitmapImage();
using (var memoryStream = new MemoryStream())
{
    encoder.Save(memoryStream);
    memoryStream.Seek(0, SeekOrigin.Begin);
    bitmapImage.BeginInit();
    bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
    bitmapImage.StreamSource = memoryStream;
    bitmapImage.EndInit();
}

转System.Drawing.Image文章来源地址https://www.toymoban.com/news/detail-600070.html

MemoryStream memoryStream = new MemoryStream();
encoder.Save(memoryStream);
System.Drawing.Image img = System.Drawing.Image.FromStream(memoryStream);

到了这里,关于WPF 复制粘贴到系统粘贴板的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • wpf复制xaml及其cs窗体到其他项目 添加现有项,选 .xaml.cs,点添加即可。VS2022

    添加现有项,选 LoadingWindow.xaml.cs,点添加即可。

    2024年02月09日
    浏览(26)
  • 主机(Windows系统)上复制文字,虚拟机(Ubuntu/Linux)上无法粘贴?

    我想应该很多人和我一样,在入门Linux的学习的时候,在自己电脑上安装VMware Workstation pro这款虚拟机软件,然后又安装ubuntu这个发行版的系统来作为自己第一次接触Linux的学习环境。作为初学者,有时候很需要从Windows主机上复制一些文本(一般都是些很长的命令或者涉及到很

    2024年02月07日
    浏览(39)
  • 【VirtualBox的虚拟机(Ubuntu)和Windows系统之间实现复制粘贴和共享文件夹】

    1.VirtualBox设置-常规-高级,将共享粘贴板和拖放设置为双向。 2.启动Ubuntu,设备-安装增强功能, 3.重启(reboot)Ubuntu,即可实现windows和ubantu之间共享复制粘贴。 Windows复制粘贴快捷键:Ctrl+C Ctrl+V Ubuntu复制粘贴快捷键:Ctrl+Shift+C Ctrl+Shift+V 1.设置共享文件夹 设置-共享文件夹-右边,

    2024年02月05日
    浏览(38)
  • WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(四)

    最近通过WPF开发项目,为了对WPF知识点进行总结,所以利用业余时间,开发一个学生信息管理系统【Student Information Management System】。前三篇文章进行了框架搭建和模块划分,后台WebApi接口编写,以及课程管理模块开发,本文在前三篇基础之上,继续深入开发学生信息管理系统

    2024年02月04日
    浏览(30)
  • WPF 医院叫号系统

    C# .Net 4.8 WPF 桌面版医院叫号系统 数据库 SQLServer 2012 数据队列 Redis 日志 log4net         医生客户端登陆 科室设置,医生职称设置,医生科室和房间设置,就诊设置,用户设置,用户就诊记录,医生看诊记录,用户预约记录,用户叫号记录,分配记录,用户扫码机自助扫描签

    2024年02月02日
    浏览(52)
  • wpf增加系统托盘图标

    使用系统托盘,可以为用户提供一个简便快捷的操作习惯。 wpf中增加系统托盘图标有2种 第一种,使用Hardcodet.NotifyIcon.Wpf开源组件 1.建立一个wpf程序 2.安装Hardcodet.NotifyIcon.Wpf 3.增加图片 图片选择资源,否则获取不到路径 4.界面前台代码 其中此处可以重写MenuItem的样式,以及其

    2024年02月10日
    浏览(29)
  • 【WPF】管理系统主界面

    前台代码 后台代码

    2024年02月04日
    浏览(58)
  • 二、深入浅出WPF之系统学习XAML语法

    跟Winforms一样,UI也是个平面结构,与winforms的设计思维不同,WPF使用树形逻辑来描述UI,下面是UI布局的简单代码 实际的页面效果:

    2024年02月16日
    浏览(30)
  • 解决WPF+Avalonia在openKylin系统下默认字体问题

    一、openKylin简介 openKylin(开放麒麟) 社区是在开源、自愿、平等和协作的基础上,由基础软硬件企业、非营利性组织、社团组织、高等院校、科研机构和个人开发者共同创立的一个开源社区,致力于通过开源、开放的社区合作,构建桌面操作系统开源社区,推动Linux开源技术

    2024年02月08日
    浏览(36)
  • 万能的微信小程序个人主页:商城系统个人主页、外卖系统个人主页、购票系统个人主页等等【全部源代码分享+页面效果展示+直接复制粘贴编译即可】

            以下给出来四个常见的小程序个人主页,分别是商城系统个人主页,外卖系统个人主页,挂号系统个人主页,电影购票系统个人主页。包括完整的页面布局代码,完整的样式代码。使用的时候,只需要将页面代码和样式代码复制到自己项目对应的页面即可。而且可

    2024年02月11日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包