public void OnUpdate(ZoomEngine engine, Matrix transform) { double panX = Context.FromPixels(engine.PanX); double panY = Context.FromPixels(engine.PanY); Element.SetScrolledPosition(panX, panY); }
private void _framePreview_MouseWheel(object sender, MouseWheelEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed || e.RightButton == MouseButtonState.Pressed) { return; } ZoomEngine.Zoom(e.Delta); Point mousePosition = e.GetPosition(_primary); // The relative center must be moved as well! double diffX = mousePosition.X / _primary.ActualWidth - _relativeCenter.X; double diffY = mousePosition.Y / _primary.ActualHeight - _relativeCenter.Y; _relativeCenter.X = mousePosition.X / _primary.ActualWidth - diffX / ZoomEngine.OldScale * ZoomEngine.Scale; _relativeCenter.Y = mousePosition.Y / _primary.ActualHeight - diffY / ZoomEngine.OldScale * ZoomEngine.Scale; _cbZoom.SelectedIndex = -1; _cbZoom.Text = _zoomEngine.ScaleText; SizeUpdate(); }
public void OnIdle(ZoomEngine engine) { Element.SendScrollFinished(); }
internal void ReloadSettings() { _zoomEngine = new ZoomEngine { ZoomInMultiplier = _settings.ZoomInMultipler }; }