我正在使用WPF和MVVM开发我的系统,我很难找到解决以下问题的最佳方法:
我有一个屏幕,其中在特定位置绘制了许多组件(用户控件)。屏幕中的所有组件都根据屏幕VM计算的绑定变量进行旋转,平移和缩放。
但是,每个组件可能有不同的旋转中心,不同的平移原点和不同的比例,取决于内部变量和屏幕比例。
如何在用户控件中内部计算此转换?我认为更简单的方法是使用Converter
,但由于我有许多不同的用户控件具有不同的行为,我将不得不创建彼此非常相似的多个转换器,这不是理想的解决方案。
非常感谢您的帮助!
答案 0 :(得分:0)
UIElement
只有一个RenderTransformOrigin。
某些转换允许您设置该转换的原点,但是相对于控件边界的坐标(例如:125, 34
)不是像RenderOrigin
那样的比例坐标(例如:0.5, 0.75
)
所以,如果你能使用坐标,那就很好了。
如果没有,您可以通过创建转换组来组合转换,转换组首先转换控件,然后执行转换,然后将控件转换回来。
如果您需要更多帮助,请发布您要实现的目标示例。