【问题标题】:How to simulate Paste in a WPF TextBox?如何在 WPF 文本框中模拟粘贴?
【发布时间】:2010-08-05 09:00:30
【问题描述】:

我的 WPF 应用程序中有一个 TextBox,我添加了一个粘贴事件来使用:

DataObject.AddPastingHandler(elm, new DataObjectPastingEventHandler(OnPaste));

现在我想从 C# 代码触发 OnPaste 事件。我怎样才能做到这一点?我尝试在控件上调用 Paste() 函数。文本粘贴在控件中,但未触发 OnPaste 事件..:

private static void Foo(TextBox textBox, string pastedText)
{
    Clipboard.SetData(DataFormats.Text, pastedText);
    textBox.Paste();
}

【问题讨论】:

    标签: c# .net wpf onpaste


    【解决方案1】:

    调用 ApplicationCommand Paste:

    ApplicationCommands.Paste.Execute(this, pastedText)
    

    请注意,这在部分信任下不起作用!

    【讨论】:

    • 谢谢。我在问题中建议的代码实际上也可以工作。我的错。问题是必须手动设置粘贴处理程序,并且我在单元测试中未触发的代码的某些部分中设置了它..
    【解决方案2】:

    你可以通过反射来做到这一点。您需要找到私有委托字段,然后调用它。

    How to: Hook Up a Delegate Using Reflection

    【讨论】:

      猜你喜欢
      • 2011-03-04
      • 2020-06-08
      • 1970-01-01
      • 1970-01-01
      • 2016-08-30
      • 2022-11-04
      • 2015-03-05
      • 2013-02-25
      • 1970-01-01
      相关资源
      最近更新 更多