在内部进行WPF用户控制转换

时间:2012-05-21 13:45:03

标签: wpf user-controls converter

我正在使用WPF和MVVM开发我的系统,我很难找到解决以下问题的最佳方法:

我有一个屏幕,其中在特定位置绘制了许多组件(用户控件)。屏幕中的所有组件都根据屏幕VM计算的绑定变量进行旋转,平移和缩放。

但是,每个组件可能有不同的旋转中心,不同的平移原点和不同的比例,取决于内部变量和屏幕比例。

如何在用户控件中内部计算此转换?我认为更简单的方法是使用Converter,但由于我有许多不同的用户控件具有不同的行为,我将不得不创建彼此非常相似的多个转换器,这不是理想的解决方案。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

UIElement只有一个RenderTransformOrigin。 某些转换允许您设置该转换的原点,但是相对于控件边界的坐标(例如:125, 34)不是像RenderOrigin那样的比例坐标(例如:0.5, 0.75

所以,如果你能使用坐标,那就很好了。

如果没有,您可以通过创建转换组来组合转换,转换组首先转换控件,然后执行转换,然后将控件转换回来。

如果您需要更多帮助,请发布您要实现的目标示例。