2011-05-30 63 views
2

在具有縮放功能的wpf控件中,我從MouseWheelEventArgs計算如何縮放繪圖畫布以實現縮放效果。如何確定屏幕上的實際尺寸?

Point mouse = e.GetPosition(myCanvas); 
Matrix m = myCanvas.RenderTransform.Value; 

if (e.Delta > 0) 
{ 
    f = 1.1; 
} 
else 
{ 
    f = 1.0/1.1; 
} 

m.ScaleAtPrepend(f, f, mouse.X, mouse.Y); 
myCanvas.RenderTransform = new MatrixTransform(m); 

我想知道畫布上其中一個圓的實際大小。然而,寬度,實際寬度等在放大和縮小時保持不變(16.0)。您如何確定(計算)用戶在屏幕上實際看到的圈子大小?

回答

1

MatrixTransform對此有一個方法TransformBounds。你用圖像的原始邊界框(我認爲在你的情況下,0,0,寬度,高度將會這樣做)餵它,它會返回你的結果邊界框。