相对于边界矩形缩放多个对象

时间:2012-07-26 22:57:41

标签: wpf graphics geometry diagramming

我正在尝试找出在画布上缩放多个选定对象的算法(类似于Visio的行为)。比方说我在我的应用程序中有以下所选对象:

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

enter image description here

我的问题如下:

  1. 如何获得应用于每个对象的缩放量?
  2. 如何获取应用于每个对象的翻译量?
  3. 我希望这个问题有道理。我希望你能提供帮助。

1 个答案:

答案 0 :(得分:0)

嗨,我不认为有任何翻译,只有缩放。一种简单的方法是保留对象的宽度和高度,如(上面的TextBoxes),然后当你想获得该对象的Scaleing值时

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的宽度和高度(即窗口初始化时)的对象缩放量。我希望这会给你一个想法。