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);

我想知道画布上一个圆圈的实际大小。但是 Width、ActualWidth 等在放大和缩小 (16.0) 时保持不变。您将如何确定(计算?)用户在其屏幕上实际看到的圆圈的大小?

4

1 回答 1

1

MatrixTransform 对此有一个方法TransformBounds。你用图像的原始边界框喂它(我认为在你的情况下 0,0,width,height 会做),它会返回你得到的边界框。

于 2011-05-30T14:01:41.313 回答