Как стать автором
Обновить

SilverMouse — библиотека для работы с правой кнопкой мыши и нетолько…

Время на прочтение2 мин
Количество просмотров463
SilverMouse — это проект с открытыми исходными кодами, добавляющий некоторый функционал в систему ввода-вывода Silverlight-приложения. Как понятно по названию проекта, библиотека сконцентрирована на работе с мышью. На данный момент выпущена первая бета-версия данной библиотеки. Прошу всех заинтересованных сильверлайтеров принять участие в тестировании данного проекта. Это поможет быстро отловить основные глюки и развивать SilverMouse дальше.

Что бы воспользоваться данной библиотекой нужно:

1. Подключить её

2. Прописать в юсингах пространство имён MoonRainbow.Input.Mouse
using MoonRainbow.Input.Mouse;

3. Используя extended-методы подключить к любому UIElement'у обработчики событий (Attach_название_событий — добавить обработчик, Dettach_ название_событий — удалить обработчик)

this.AttachPreviewMouseLeftButtonDown(MouseLeftButtonDownPreview);
this.AttachPreviewMouseLeftButtonUp(MouseLeftButtonUpPreview);
this.AttachPreviewMouseRightButtonDown(MouseRightButtonDownPreview);
this.AttachMouseRightButtonDown(MouseRightButtonDown);
this.AttachPreviewMouseRightButtonUp(MouseRightButtonUpPreview);
this.AttachMouseRightButtonUp(MouseRightButtonUp);


При этом нужно понимать, что если в Preview-обработчике вы установите свойство Handled аргументов события в true, то это приведёт к тому что соответствующее событие идущее за Preview-событием просто не возникнет.

Например:

private void MouseRightButtonDownPreview(object sender, MouseRightButtonEventArgs e)
{
// Отмечаем, что событие перехвачено.
e.Handled = true;
}

private void MouseRightButtonDown(object sender, MouseRightButtonEventArgs e)
{
// любой код написанный здесь никогда не выполнется,
// так как в MouseRightButtonDownPreview e.Handled установлено в true
}


4. Установить параметр приложения windowless в true (параметры инициализации плагина)

Возможности:

— поддержка правой кнопки мыши:

— PreviewMouseRightButtonDown

— MouseRightButtonDown

— PreviewMouseRightButtonUp

— MouseRightButtonUp

— расширение поддержки левой кнопки мыши:

— PreviewMouseLeftButtonUp

— PreviewMouseLeftButtonDown

События с приставкой Preview работают как нисходящие события. Остальные — как восходящие события (смотрите «Стратегии маршрутизации»)

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

Ещё один факт: при использовании данной библиотеки пропадает контекстное меню Silvrelight плагина. Это было сделанно намерено. В дальнейшем будет проведена работа на добавление возможности вызова функционала данного контекстного меню.

PS все вопросы и найденные баги мне в личку или в коментарии. Буду благодарен за конструктивные замечания.
Теги:
Хабы:
Всего голосов 10: ↑6 и ↓4+2
Комментарии7

Публикации