我想复制具有基于RenderTransform的新属性的Element。例如,一个画布上的元素到另一个画布的ScaleTransform。
private void CopyElement(UIElement elem, Canvas src, Canvas dest, Size scale, Vector offset) {
ScaleTransform resize = new ScaleTransform(scale.Width, scale.Height);
elem.LayoutTransform = resize;
UIElement newElem = CopyElement(src, elem);
Canvas.SetLeft(newElem, Canvas.GetLeft(elem) * scale.Width + offSet.X);
Canvas.SetTop(newElem, Canvas.GetTop(elem) * scale.Height + offSet.Y);
dest.Children.Add(newElem);
}
您根本不需要这样做。
只需设置元素的LayoutTransform
属性,而不是RenderTransform
。