Try this:
Canvas.SetLeft(newEllipse, aCanvas.ActualWidth/2.0);
Canvas.SetTop(newEllipse, aCanvas.ActualHeight/2.0);
I didn't try it, but it worked for me all the time.
Edit: Ahh and you should probably first add the ellipse to the canvas before moving the ellipse around.