Событие OperationCompleted не возникает после операции «Вставить» - PullRequest
0 голосов
/ 30 апреля 2018

Событие 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();
}

1 Ответ

0 голосов
/ 01 мая 2018

См. Раздел Remarks в документе .

Это событие происходит, когда пользователь или программа вставляет содержимое из буфера обмена. Если ваше приложение использует DataPackage для операций с общим доступом, вам не нужно обрабатывать это событие.

Затем в методе обработки вставки вам потребуется использовать метод dataPackageView.ReportOperationCompleted(), чтобы сообщить системе, что ваше приложение завершено с использованием объекта DataPackageView.

Я использовал официальный код Буфер обмена для тестирования.

В этой строке я добавил следующий код:

dataPackageView.ReportOperationCompleted(DataPackageOperation.Copy);

После этого будет инициировано событие OperationCompleted объекта DataPackage.

...