【问题标题】:'OperationCompleted' event not raised after 'Paste' operation“粘贴”操作后未引发“操作完成”事件
【发布时间】:2018-10-10 12:46:36
【问题描述】:

OperationCompleted 事件应该在DataPackage 中提到的剪贴板粘贴操作结束时引发:

OperationCompleted 在粘贴操作完成时发生。

不是。

为什么? / 什么是解决方法?

代码

static void CopyToClipboard(string s)
{
    DataPackage dataPackage = new DataPackage();
    dataPackage.SetText(s);
    dataPackage.OperationCompleted += DataPackage_OperationCompleted1;
    Clipboard.SetContent(dataPackage);
}
static void DataPackage_OperationCompleted1(DataPackage sender, OperationCompletedEventArgs args)
{
    throw new NotImplementedException();
}

【问题讨论】:

    标签: c# uwp windows-store-apps win-universal-app


    【解决方案1】:

    请参阅document 上的Remarks 部分。

    当用户或程序从剪贴板粘贴内容时发生此事件。如果您的应用正在使用 DataPackage 进行共享操作,则您不必处理此事件。

    然后,在您的粘贴处理程序方法中,您需要使用 dataPackageView.ReportOperationCompleted() 方法通知系统您的应用已使用 DataPackageView 对象完成。

    我使用了官方Clipboard的代码示例进行测试。

    在这个line中,我添加了以下代码:

    dataPackageView.ReportOperationCompleted(DataPackageOperation.Copy);
    

    之后,DataPackage 的 OperationCompleted 事件将被触发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-17
      • 2020-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多