Instantiating UI items into Camera Space

I’m having a bit of an issue doing this. I have a prefab I want to instantiate and I’m doing the following:

var newButton = (GameObject)GameObject.Instantiate(part);
var myTransform = GetComponent<RectTransform>();
var btnTransform = newButton.GetComponent<RectTransform>();

btnTransform.SetParent(transform.parent.GetComponent<RectTransform>());
btnTransform.position = Vector3.zero;//GetComponent<RectTransform>().position;

I’ve tried to fiddle around with different values, but what happens is that the button turns out HUGE, instead of being properly in the camera space. How do I need to do this parenting to make the button show up properly sized. In the hierarchy, it appears to be the child of the correct Canvas object.

The problem in my case ended up not being parenting (heh), but the fact that the prefab item was indeed in wrong coordinate space, resulting in huge images being drawn, albeit in correct locations.

I also ended up using GameObject.Find to find the world space canvas for easier parenting.