wpf - notifyIcon - событие мыши - определить кнопку мыши - PullRequest
0 голосов
/ 27 апреля 2018

Я использую notifyIcon из Winforms в приложении WPF. Сильфон является частью моего обработчика событий:

private void notifyIcon_Logger_MouseDown( object sender, EventArgs e )
{
        var st = e.ToString();
...

Я не могу сделать параметр e MouseEventArgs, потому что компилятор говорит, что он не совпадает. Но даже в этом случае я вижу, что st это "System.Windows.Forms.MouseEventArgs". Как это?!

Я прикрепил e на поверхности IDE, чтобы посмотреть его в целях отладки, и вижу, что в нем есть кнопка-член. Я вижу что-то вроде

Button = Right

но если я попробую e.Button, я получу Ошибка CS1061: «EventArgs» не содержит определения для «кнопки» Как все это возможно? Что более важно, как определить кнопку мыши?

1 Ответ

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

смешивать WPF и Winforms иногда бывает сложно ...

Есть 2 типа с именем MouseEventArgs. Одна - это версия WPF в пространстве имен System.Windows.Input, а другая - версия Winforms в пространстве имен System.Windows.Forms.

Просто приведя его как MouseEventArgs, компилятор использует форму WPF, так как это приложение WPF, но вам нужна версия Winforms, поскольку этот конкретный обратный вызов предназначен для элемента управления Winforms. Так что просто укажите его в правильном пространстве имен в определении обратного вызова ...

private void notifyIcon_Logger_MouseDown( object sender, System.Windows.Forms.MouseEventArgs e )
{
        var st = e.ToString();
...
...