Right I think the important point here is that behavior and appearance are totally separated with WPF.  The Button class defines how a button acts, that is has some content on type object and then it is a Click event, but it doesn’t define that it should look like a rounded rectangle with a particular gradient and text as it content.  Instead that appearance is defined in a ControlTemplate which is not a part of the class definition and so it can be changed by application developers without having to mess with the Button class.