private void MoveElement(IElement elem, IPoint new_pos, IAGAnimationContainer pContainer)
{
ITransform2D transform2D = elem as ITransform2D;
IPoint origin;
if (elem.Geometry.GeometryType == esriGeometryType.esriGeometryPoint)
{
origin = elem.Geometry as IPoint;
}
else
{
IEnvelope elementEnvelope = elem.Geometry.Envelope;
IArea elementArea = elementEnvelope as IArea;
origin = elementArea.Centroid;
}
AddPropertySet(elem);
IElementProperties prop = (IElementProperties)elem; //record the old properties
IPropertySet propSet;
propSet = (IPropertySet)prop.CustomProperty;
IEnvelope oldEnv = GetElementBound(elem, pContainer);
propSet.SetProperty("Envelope", oldEnv);
transform2D.Move(new_pos.X - origin.X, new_pos.Y - origin.Y);
}