Как обнаружить Ctrl+V в Silverlight 4?

Что лучший способ состоит в том, чтобы обнаружить Ctrl+V в Silverlight?

Я хочу обнаружить Ctrl+V, получить доступ к Буферу обмена.

5
задан Mwiza 4 January 2018 в 13:33
поделиться

2 ответа

РЕДАКТИРОВАТЬ

Чтобы зафиксировать нажатие клавиши CTRL + V глобально в вашем приложении silverlight, это сопряжено с трудностями. События начинаются с дочерних элементов и переходят к родительским элементам управления, поэтому простая обработка KeyDown в корневом UIElement не сработает. Любой элемент управления вводом текста сначала получит событие и задушит его (установив для параметра Handled значение true в аргументах события). Я думаю, что если вы используете мост DOM и подписываете обработчик на событие KeyDown браузера для самого элемента silverlight, вы можете на самом деле быть в состоянии добраться до него первым и даже полностью обработать его, прежде чем это смогут сделать какие-либо элементы управления Silverlight. Я думаю, что это был бы самый простой способ перехватить CTRL + V , но я его не тестировал.

Исходный ответ

Вы должны использовать класс System.Windows.Clipboard .

  • GetText, который извлекает текст из буфер обмена
  • SetText, который помещает текст в буфере обмена
  • ContainsText, который указывает, что буфер обмена в настоящее время содержит текст
0
ответ дан 14 December 2019 в 13:27
поделиться
if (e.Key == Key.V)
{
    if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
    {
        //do what you want on paste
    }
}

Вы должны использовать это в событии keyUp. Более подробную информацию можно найти здесь: http://msdn.microsoft.com/en-us/library/cc189015%28VS.95%29.aspx

6
ответ дан 14 December 2019 в 13:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: