我试图找出在画布上缩放多个选定对象的算法(类似于 Visio 的行为)。例如,我的应用程序中有以下选定对象:
然后我拖动边界框的右下角手柄以增加所选对象的大小,从而产生以下结果:
我的问题如下:
- 如何获得要应用于每个对象的缩放量?
- 如何获得要应用于每个对象的翻译量?
我希望这个问题是有道理的。我希望你能提供帮助。
我试图找出在画布上缩放多个选定对象的算法(类似于 Visio 的行为)。例如,我的应用程序中有以下选定对象:
然后我拖动边界框的右下角手柄以增加所选对象的大小,从而产生以下结果:
我的问题如下:
我希望这个问题是有道理的。我希望你能提供帮助。
嗨,我认为没有任何翻译,只有缩放。一种简单的方法是保留对象的宽度和高度,例如(上面的文本框),然后当您想要获取该对象的缩放值时
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这会给你一个想法。