private static void CameraControlMouseWheel(object sender, MouseEventArgs e)
{
var cameraControl = (CameraWindow)sender;
cameraControl.PTZNavigate = false;
if (cameraControl.PTZ != null)
{
if (!cameraControl.PTZ.DigitalZoom)
{
cameraControl.Calibrating = true;
cameraControl.PTZ.SendPTZCommand(e.Delta > 0 ? Enums.PtzCommand.ZoomIn : Enums.PtzCommand.ZoomOut);
if (cameraControl.PTZ.IsContinuous)
cameraControl.PTZ.SendPTZCommand(Enums.PtzCommand.Stop);
}
else
{
Rectangle r = cameraControl.Camera.ViewRectangle;
//map location to point in the view rectangle
var ox =
Convert.ToInt32((Convert.ToDouble(e.Location.X) / Convert.ToDouble(cameraControl.Width)) *
Convert.ToDouble(r.Width));
var oy =
Convert.ToInt32((Convert.ToDouble(e.Location.Y) / Convert.ToDouble(cameraControl.Height)) *
Convert.ToDouble(r.Height));
cameraControl.Camera.ZPoint = new Point(r.Left + ox, r.Top + oy);
var f = cameraControl.Camera.ZFactor;
if (e.Delta > 0)
{
f += 0.2f;
}
else
f -= 0.2f;
if (f < 1)
f = 1;
cameraControl.Camera.ZFactor = f;
}
((HandledMouseEventArgs)e).Handled = true;
}
}