2

我试图找出在画布上缩放多个选定对象的算法(类似于 Visio 的行为)。例如,我的应用程序中有以下选定对象:

然后我拖动边界框的右下角手柄以增加所选对象的大小,从而产生以下结果:

在此处输入图像描述

我的问题如下:

  1. 如何获得要应用于每个对象的缩放量?
  2. 如何获得要应用于每个对象的翻译量?

我希望这个问题是有道理的。我希望你能提供帮助。

4

1 回答 1

0

嗨,我认为没有任何翻译,只有缩放。一种简单的方法是保留对象的宽度和高度,例如(上面的文本框),然后当您想要获取该对象的缩放值时

ScaleTransform scale = new ScaleTransform();
        //_text is the scaled object
        scale.ScaleX = text.ActualWidth - _width; //_width is width of the textbox at beginning.
        scale.ScaleY = text.ActualHeight - _height; //_height is the height of textbox at the beginning.

这将为您提供对象在开始时(即窗口初始化时)与 TextBox 的宽度和高度相对应的缩放量。我hyope这会给你一个想法。

于 2012-07-27T02:31:50.823 回答