问题描述
|
在具有缩放功能的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);
我想知道画布上一个圆圈的实际尺寸。但是,Width,ActualWidth等在放大和缩小(16.0)时保持不变。您如何确定(计算?)用户在屏幕上实际看到的圆圈的大小?
解决方法
MatrixTransform为此具有方法TransformBounds。您将其与图像的原始边框一起送入(我认为在您的情况下,0,0,width,height可以),它将返回您生成的边框。