Cloning Windows Forms controls from a template
I think you should remove Clone method from your builder. So you essentially would have:

interface ITemplateBuilder&lt;TSource&gt;
{
     ITemplateBuilder&lt;TSource&gt; WithArgument(...);
     ITemplate&lt;TSource&gt; Build();
}


where:

interface ITemplate&lt;TSource&gt;
{
     TSource Clone();
}


while it is similar to what you have, it conveys your intention in clearer way.

But overall I have to agree with Adriano, I think you are over-engineering. A simple factory will do the job and will probably take less code to write. However you can improve your implementation so it works more like a simplified version of WPF style, so that those actions you were saving up can be applied to any instance of Control. That, I think, would be much more useful. That you can't do with a factory.

 var style = new ControlStyle&lt;Label&gt;()
        .Setter(label =&gt; label.TextAlign = ContentAlignment.MiddleLeft)
        .......;
 style.Apply(_myLabel);
 style.Apply(_myCustomClassThatInheritsLabel);