Как вручную вызвать / вызвать события мыши в Silverlight 4? - PullRequest
2 голосов
/ 15 июля 2010

В Silverlight 4 я хочу вызывать одно из событий нажатия кнопки мыши при нажатии правой кнопки мыши.У меня есть событие нажатия RightMouseButtonDown, но я не знаю, как вручную запустить событие MouseLeftButtonUp.

Я пытался вызвать событие следующим образом., ошибка компилятора:

"The event 'System.Windows.UIElement.MouseLeftButtonDown' can only appear on the left hand side of += or -=

Что мне нужно сделать, чтобы вручную вызвать это событие?

Ответы [ 3 ]

3 голосов
/ 15 июля 2010

Другие ответы верны в том, что они показывают, как вызывать те же пути кода, что и для других событий мыши.

Должно быть ясно, что в Silverlight вы не можете повышать (или автоматизировать) фактические щелчки мышью по соображениям безопасности.

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

2 голосов
/ 15 июля 2010

Вы действительно не должны поднимать само событие. Вместо этого сделайте код внутри MouseLeftButtonUp своей собственной функцией, а затем вызовите эту функцию из событий MouseLeftButtonUp и MouseRightButtonUp.

, например

private void MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    DoTheSameThing(sender, e);
}

private void MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    DoTheSameThing(sender, e);
}

private void DoTheSameThing(object sender, MouseButtonEventArgs e)
{
    //Handle left or right mouse buttons up event
}
0 голосов
/ 15 июля 2010

В функции инициализации вашей страницы вам нужна эта строка кода

someObjectOnPage.MouseLeftButtonDown += new MouseDownEventHandler(DoSomething);
someObjectOnPage.MouseRightButtonDown += new MouseDownEventHandler(DoSomething);

Это чистый код псевдо, но он должен привести вас на правильный путь

также ваш метод должен выглядеть следующим образом

void DoSomething(object sender, MouseButtonEventArgs e) { }
...