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);
        }

      
        主要调用Clipboard中的方法。复制文本调用如下
  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("数据复制成功");
        }

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF项目开发中,复制粘贴功能可以实现工程的完整拷贝。具体的实现过程如下: 1. 复制操作很简单,需要获取到完整的工程对象信息。可以通过一个私有的ICloneable类型的变量copyItem来保存要复制的工程对象信息。在复制操作中,将要复制的工程对象赋值给copyItem变量。 2. 粘贴操作需要生成一个与被拷贝工程没有任何关联的新工程。可以通过反射获取Project中的对象信息,并使用Clone()函数实现工程的复制。在Clone()函数中,使用反射创建与被拷贝工程相同类型的新对象,然后遍历属性列表,将被拷贝工程的属性值赋给新对象的对应属性。最后返回新的工程对象作为粘贴的结果。 实现复制粘贴功能的步骤如下: 1. 在复制操作中,获取要复制的工程对象信息,并保存到一个私有变量中。 2. 在粘贴操作中,通过反射获取被拷贝工程的属性信息。 3. 使用反射创建一个与被拷贝工程类型相同的新对象。 4. 遍历属性列表,将被拷贝工程的属性值赋给新对象的对应属性。 5. 返回新的工程对象作为粘贴的结果。 通过以上步骤,就可以实现WPF项目中的复制粘贴功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [WPF中通过反射实现对象的复制粘贴](https://blog.csdn.net/SQWH_SSGS/article/details/109204771)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值