private void MapFrameViewChanged(object sender, ViewChangedEventArgs e) { int xDiff = e.NewView.X - e.OldView.X; int yDiff = e.NewView.Y - e.OldView.Y; int wDiff = e.NewView.Width - e.OldView.Width; int hDiff = e.NewView.Height - e.OldView.Height; Rectangle currView = _geoSlaveMapFrame.View; _geoSlaveMapFrame.View = new Rectangle(currView.X + xDiff, currView.Y + yDiff, currView.Width + wDiff, currView.Height + hDiff); // clip rectangles needs to move in opposite direction of view Rectangle currSlaveClipRect = _geoSlaveMapFrame.ClipRectangle; _geoSlaveMapFrame.ClipRectangle = new Rectangle(currSlaveClipRect.X - xDiff, currSlaveClipRect.Y - yDiff, currSlaveClipRect.Width - wDiff, currSlaveClipRect.Height - hDiff); var mf = (MapFrame)MapFrame; Rectangle currMasterClipRect = mf.ClipRectangle; mf.ClipRectangle = new Rectangle(currMasterClipRect.X - xDiff, currMasterClipRect.Y - yDiff, currMasterClipRect.Width - wDiff, currMasterClipRect.Height - hDiff); }
private void MapFrameViewChanged(object sender, ViewChangedEventArgs e) { int x_diff = e.NewView.X - e.OldView.X; int y_diff = e.NewView.Y - e.OldView.Y; int w_diff = e.NewView.Width - e.OldView.Width; int h_diff = e.NewView.Height - e.OldView.Height; Rectangle curr_view = _geoSlaveMapFrame.View; _geoSlaveMapFrame.View = new Rectangle(curr_view.X + x_diff, curr_view.Y + y_diff, curr_view.Width + w_diff, curr_view.Height + h_diff); // clip rectangles needs to move in opposite direction of view Rectangle curr_slaveClipRectangle = _geoSlaveMapFrame.ClipRectangle; _geoSlaveMapFrame.ClipRectangle = new Rectangle(curr_slaveClipRectangle.X - x_diff, curr_slaveClipRectangle.Y - y_diff, curr_slaveClipRectangle.Width - w_diff, curr_slaveClipRectangle.Height - h_diff); var mf = (MapFrame)MapFrame; Rectangle curr_masterClipRectangle = mf.ClipRectangle; mf.ClipRectangle = new Rectangle(curr_masterClipRectangle.X - x_diff, curr_masterClipRectangle.Y - y_diff, curr_masterClipRectangle.Width - w_diff, curr_masterClipRectangle.Height - h_diff); }