private void ViewPort_HMouseMove(object sender, HMouseEventArgsWPF e) { if (stateView == MODE_ROI_Create) { return; } double motionX, motionY; double posX, posY; double zoomZone; int a = roiManager.mouseMoveROI(e.Column, e.Row);//鼠标经过的index if (!mousePressed) { return; } if (roiManager != null && (roiManager.activeROIidx != -1) && (dispROI == MODE_INCLUDE_ROI)) { roiManager.mouseMoveAction(e.Column, e.Row); } else if (stateView == MODE_VIEW_MOVE) { motionX = ((e.Column - startX)); motionY = ((e.Row - startY)); if (((int)motionX != 0) || ((int)motionY != 0)) { moveImage(motionX, motionY); startX = e.Column - motionX; startY = e.Row - motionY; } } else if (stateView == MODE_VIEW_ZOOMWINDOW) { HSystem.SetSystem("flush_graphic", "false"); ZoomWindow.ClearWindow(); posX = ((e.Column - ImgCol1) / (ImgCol2 - ImgCol1)) * viewPort.ActualWidth; posY = ((e.Row - ImgRow1) / (ImgRow2 - ImgRow1)) * viewPort.ActualHeight; zoomZone = (zoomWndSize / 2) * zoomWndFactor * zoomAddOn; ZoomWindow.SetWindowExtents((int)posY - (zoomWndSize / 2), (int)posX - (zoomWndSize / 2), zoomWndSize, zoomWndSize); ZoomWindow.SetPart((int)(e.Row - zoomZone), (int)(e.Column - zoomZone), (int)(e.Row + zoomZone), (int)(e.Column + zoomZone)); repaint(ZoomWindow); HSystem.SetSystem("flush_graphic", "true"); ZoomWindow.DispLine(-100.0, -100.0, -100.0, -100.0); } }