In a related note, (although probably not directly answering your question), you can also declare a FrameworkElement as a Resource, give it a key, and as long as you add x:Shared="False" you can access the resource again and again in code.
Here's a pseudocoded example:
Then, in code, you can access the resourced shape and reuse it as many times as needed.
Ellipse tempRect = (Ellipse)FindResouce("ReusableEllipse");