/// <summary> /// Zoom content to view. Must be done on IVirtualCanvas due to needing zoom and graph /// </summary> /// <param name="canvas"></param> /// <param name="zoomToContent"></param> public static void ZoomToContent(this IMesVirtualCanvas canvas, ZoomToContent zoomToContent) { Double?zoom = null; switch (zoomToContent) { case Extensions.ZoomToContent.Manual: zoom = null; break; case Extensions.ZoomToContent.Width: zoom = canvas.Graph.ViewportWidth / canvas.Graph.Extent.Width; break; case Extensions.ZoomToContent.Height: zoom = canvas.Graph.ViewportHeight / canvas.Graph.Extent.Width; break; case Extensions.ZoomToContent.WidthAndHeight: Double scaleX = canvas.Graph.ViewportWidth / canvas.Graph.Extent.Width; Double scaleY = canvas.Graph.ViewportHeight / canvas.Graph.Extent.Height; zoom = Math.Min(scaleX, scaleY); break; } if (zoom != null) { canvas.Zoom.Value = zoom.Value; canvas.Zoom.ResetTranslate(); } }
public VirtualCanvasView() { InitializeComponent(); DataContextChanged += (s, e) => { IMesVirtualCanvas dc = (IMesVirtualCanvas)DataContext; Graph.UseDefaultControls(dc); }; }