首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图从RichTextBlock复制/粘贴图像

试图从RichTextBlock复制/粘贴图像
EN

Stack Overflow用户
提问于 2014-06-16 16:24:49
回答 1查看 126关注 0票数 1

如何在RichTextBlock (图像)中复制/粘贴?属性是否存在于用于复制/粘贴的RichTextBlock中?

下面是我正在创建的一个例子:

代码语言:javascript
复制
<RichTextBlock x:Name="txbTermsConditions" Height="Auto" Width="319" FontSize="16">
             <Paragraph>
                 //Example of xaml... the image is from file.xml
            </Paragraph> 
</RichTextBlock>

如果我从这段Xaml中选择了所有的文本或图像,并在NotePad中复制/粘贴它,我就无法选择要复制/粘贴的文本或图像。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-16 16:51:52

尝试使用以下代码

代码语言:javascript
复制
      private void richTextBox1_MouseUp(object sender, MouseEventArgs e)
            {
                if (e.Button == System.Windows.Forms.MouseButtons.Right)
                {   //click event
                    //MessageBox.Show("you got it!");
                    ContextMenu contextMenu = new System.Windows.Forms.ContextMenu();
                    MenuItem menuItem = new MenuItem("Cut");
                    menuItem.Click += new EventHandler(CutAction);
                    contextMenu.MenuItems.Add(menuItem);
                    menuItem = new MenuItem("Copy");
                    menuItem.Click += new EventHandler(CopyAction);
                    contextMenu.MenuItems.Add(menuItem);
                    menuItem = new MenuItem("Paste");
                    menuItem.Click += new EventHandler(PasteAction);
                    contextMenu.MenuItems.Add(menuItem);

                    richTextBox1.ContextMenu = contextMenu;
                }
            }
            void CutAction(object sender, EventArgs e)
            {
                richTextBox1.Cut();
            }

            void CopyAction(object sender, EventArgs e)
            {
                Graphics objGraphics;
                Clipboard.SetData(DataFormats.Rtf, richTextBox1.SelectedRtf);
                Clipboard.Clear();
            }

            void PasteAction(object sender, EventArgs e)
            {
                if (Clipboard.ContainsText(TextDataFormat.Rtf))
                {
                    richTextBox1.SelectedRtf
                        = Clipboard.GetData(DataFormats.Rtf).ToString();
                }
            } 

如果您想要复制粘贴到另一个应用程序,如记事本(文本,而不是样式),请替换以下方法

代码语言:javascript
复制
void CopyAction(object sender, EventArgs e)
        {
            Clipboard.SetText(richTextBox1.SelectedText);
        }

        void PasteAction(object sender, EventArgs e)
        {
            if (Clipboard.ContainsText())
            {
                richTextBox1.Text
                    += Clipboard.GetText(TextDataFormat.Text).ToString();
            }
        }  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24248188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档