自定义WPF的Transform

我们都知道WPFTransform有很多种,比如ScaleTransformRotateTransform什么的。而且从纯粹的数学角度来讲,这些Transform的组合,可以完全任何二维线性图形变换。完全没有必要自己再去写一个。

 

但是纯数学,总是纯数学的。比如我想做这样一个Transform,它总是把控件扩大10个像素。目前没有能直接做到这个效果的Transform。有人说直接把Width + 10,也有人说把Margin设置为-50不都可以解决问题吗?非也,非也。有时用WidthMargin是解决不了问题的。

 

通常这个问题都会用一个Converter来解决,把控件的宽度Convert成一个ScaleTransform就可以了。但是这个方式总觉得不那么优美。于是今天终于头脑发热,决定试着自己写一个SizeTransform

 

结果也很简单:这是不可能的。

 

因为Transform类有多个internal abstract 方法,而且所有从Transform继承出来的类都被标记成了final

 

我终于淡定了。

posted on 2010-01-20 21:28  南柯之石  阅读(1904)  评论(3编辑  收藏  举报

导航