Я занимаюсь разработкой своего рода календарного приложения Outlook, в котором мне нужно изменить размер встречи с помощью мыши.
Моя первая попытка с большим пальцем не сработала, поэтому я попробовал другой способ.
То, что я сделал, это:
1) В нижней части панели назначения я добавил прямоугольник, чтобы определить зону изменения размера (большой палец). Панель назначения помещается на панель сетки.
2) Я перехватываю событие down на прямоугольнике и отправляю событие на этот код:
private Point startPoint;
private void OnResizeElementMouseDown(object sender, MouseButtonEventArgs e)
{
e.Handled = true;
this.MouseMove += new MouseEventHandler(ResizeEndElement_MouseMove);
this.MouseLeftButtonUp += new MouseButtonEventHandler(OnResizeElementMouseUp);
// some code to perform new height computation
Mouse.Capture(this);
}
где это панель встреч, которой принадлежит большой палец.
Уменьшение высоты работает хорошо.
Но увеличить сложнее. Если я очень медленно двигаю мышь, то все в порядке, если я немного ускоряю ее, это приводит к тому, что она пропускает панель встреч, и тогда все события MouseMove теряются.
Я думал, что Mouse.Capture () предлагал решить эту проблему, но на самом деле нет.
Кто-нибудь знает, что не так в моем коде?