C# 向WPF控件添加新的RenderTransforms

C# 向WPF控件添加新的RenderTransforms,c#,.net,wpf,C#,.net,Wpf,我一直在胡乱处理WPF中的转换选项。如何向现有转换“添加”新转换?我需要在不可知的不同时间从几个不同的点执行几个不同的缩放,并简单地将它们添加到现有对象上,而不是仅使用新的缩放重新创建一个新的变换。例如,我一直在尝试RenderTransform.Value.ScaleAt(stuff),但似乎什么也没发生。我在C 谢谢。ScaleAt在矩阵结构(即Transform.Value属性)上工作,不会反映在实际的转换上。您可以做的是获取当前矩阵,对其进行缩放,然后将新矩阵作为矩阵变换应用于元素。大概

我一直在胡乱处理WPF中的转换选项。如何向现有转换“添加”新转换?我需要在不可知的不同时间从几个不同的点执行几个不同的缩放,并简单地将它们添加到现有对象上,而不是仅使用新的缩放重新创建一个新的变换。例如,我一直在尝试RenderTransform.Value.ScaleAt(stuff),但似乎什么也没发生。我在C


谢谢。

ScaleAt在矩阵结构(即Transform.Value属性)上工作,不会反映在实际的转换上。您可以做的是获取当前矩阵,对其进行缩放,然后将新矩阵作为矩阵变换应用于元素。大概是这样的:

Transform t = myObject.RenderTransform;
Matrix m = t.Value;
m.ScaleAt(1.1, 1.1, 0, 0);

myObject.RenderTransform = new MatrixTransform(m);

谢谢-但是这个解决方案表现出一种非常奇怪的偏向右边的倾向。如果中心点位于对象的右侧,则缩放速度要比位于左侧快得多,几乎就像对象的中心向左偏移了大约30个像素一样。