【问题标题】:TextBlock with selectable text AND copy all text to clipboard on click [closed]带有可选文本的 TextBlock 并在单击时将所有文本复制到剪贴板 [关闭]
【发布时间】:2012-06-01 20:57:25
【问题描述】:

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

  • 如果用户只是左键单击文本框(或显示我的文本的另一个控件),所有文本都将复制到剪贴板

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

任何想法以 XAML 样式执行此操作?


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

【问题讨论】:

  • 尽量不要将几个问题混为一谈,除非它们都直接相关。
  • 特别是如果它们都在 Google 搜索的第一页上。 ;)

标签: wpf xaml clipboard


【解决方案1】:

至于鼠标悬停动画。获取鼠标悬停动画并更改指针,而 鼠标在按钮的范围内。这是一个关于鼠标悬停事件的链接:

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

以下是在文本框 mouseclick 事件上设置剪贴板数据的方法:

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多