¿Cómo establecer la plantilla de control en el código?

Tengo esto en XAML

<ControlTemplate TargetType="{x:Type Button}">
    <Image ...>
</ControlTemplate>

Quiero lograr lo mismo en el código C #. ¿Cómo puedo conseguir esto

ControlTemplate ct = new ControlTemplate();..
Image img = new Image();..

¿Ahora cómo asignar esta imagen a la plantilla de control? ¿Podemos hacer esto o me estoy perdiendo algún concepto aquí?

Respuestas a la pregunta(3)

Su respuesta a la pregunta