0
有沒有什麼辦法在深度變焦中對多尺度圖像進行固定變焦?即單擊一次以將點X,Y縮放到2x,再次單擊以恢復到原始位置和縮放級別?固定深度變焦
我寫了代碼放大和縮小,但通過縮放過程中途調用zoomaboutlogicalpoint會導致縮小得太遠(我猜是由於鼠標移動事件中的1/2因素 - 我可以獲取縮放級別?)。另外,我想縮小圖像爲中心(我想我改變了點放大到圖像中途,但這似乎並沒有工作,也許我需要考慮視口位置?)
例如,
私人無效msi_MouseLeftButtonDown(對象發件人,MouseButtonEventArgs E) {
點P = e.GetPosition(MSI); Zoom(2,p); }
私人無效msi_MouseLeftButtonUp(對象發件人,MouseButtonEventArgs E) {
點P = e.GetPosition(MSI); Zoom(1/2,p); }
public void Zoom(double zoom, Point pointToZoom)
{
bool zoomingIn = zoom > 1;
bool zoomingOut = zoom < 1;
double minViewportWidth = 0.05;
double maxViewportWidth = 1;
if (msi.ViewportWidth < minViewportWidth && zoomingIn)
{
return;
}
if (msi.ViewportWidth > maxViewportWidth && zoomingOut)
{
return;
}
Point logicalPoint = this.msi.ElementToLogicalPoint(pointToZoom);
this.msi.ZoomAboutLogicalPoint(zoom, logicalPoint.X, logicalPoint.Y);
}
謝謝。