Ответ Рэйчел верен, хотя вы можете немного его расширить, определив некоторый UserControl как:
А в коде позади определите 1. Метка: String DependencyProperty, Shape: UIElement DependencyProperty.
Обработка события изменения формы и вызов:
private void UpdateShape()
{
grdShapeContainer.Children.Clear();
if(this.Shape != null)
{
grdShapeContainer.Children.Add(this.Shape);
}
}
Таким образом, вы сможете сделать вещи динамичными.
С уважением,
Артак