你如何确定屏幕上的实际尺寸?

时间:2011-05-30 13:16:33

标签: wpf zoom rendertransform

在具有缩放功能的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 个答案:

答案 0 :(得分:1)

MatrixTransform有一个方法TransformBounds。你用图像的原始边界框喂它(我想你的情况是0,0,宽度,高度都可以),它会返回你生成的边界框。