具有可选文本的TextBlock并在单击时将所有文本复制到剪贴板

时间:2012-06-01 20:57:25

标签: wpf xaml clipboard

目前在我的WPF应用程序中,我只有一个多文本框。因此,用户可以选择文本然后 Ctrl + C Ctrl + V 。但我想让这项任务更简单:

  • 如果用户刚刚单击文本框(或显示我的文本的其他控件),则所有文本都将复制到剪贴板

但是用户仍然可以像以前一样选择文本

有任何想法以XAML风格做到吗?


解决之后,我会自动将任何选中的文字复制到剪贴板。知道如果双击文本框就会选择所有文本,用户只需双击即可复制剪贴板中的所有文本。

2 个答案:

答案 0 :(得分:2)

鼠标悬停在动画上。获取鼠标悬停动画并更改指针 鼠标位于按钮的边界内。以下是有关鼠标悬停事件的链接:

http://dotnetdud.blogspot.com/2009/01/how-to-use-c-mouseover-events-in.html

以下是如何在文本框鼠标点击事件中设置剪贴板数据:

private void textbox_mouseClick(object sender, EventArgs e)
    {
    if (((TextBox)sender).Text == string.Empty)
        return;
    else
       {
        try
         {
        Clipboard.SetText(((TextBox)sender).Text);
         }
        catch (Exception ex)
         {
           // Do something w/ exception 
         }
       }
    }

答案 1 :(得分:1)

对于剪贴板问题,您可以创建一个onclick处理程序并使用C#中的内置剪贴板功能(How to copy data to clipboard in C#)。

对于工具提示,您需要在C#中使用onload处理程序和内置工具提示功能:

System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.textBox1, "Hello");

动画没有做太多,但如果我没弄错的话,你也可以设置一个onhover处理程序。 (编辑:MouseHover事件处理程序可能正是您要查找的内容。)

编辑:基本上,事件处理程序是你的朋友。