我们都知道WPF的Transform有很多种,比如ScaleTransform,RotateTransform什么的。而且从纯粹的数学角度来讲,这些Transform的组合,可以完全任何二维线性图形变换。完全没有必要自己再去写一个。
但是纯数学,总是纯数学的。比如我想做这样一个Transform,它总是把控件扩大10个像素。目前没有能直接做到这个效果的Transform。有人说直接把Width + 10,也有人说把Margin设置为-5,0不都可以解决问题吗?非也,非也。有时用Width和Margin是解决不了问题的。
通常这个问题都会用一个Converter来解决,把控件的宽度Convert成一个ScaleTransform就可以了。但是这个方式总觉得不那么优美。于是今天终于头脑发热,决定试着自己写一个SizeTransform。
结果也很简单:这是不可能的。
因为Transform类有多个internal abstract 方法,而且所有从Transform继承出来的类都被标记成了final。
我终于淡定了。