In my project I have same header & footer for all windows (I have more then 20 wpf windows in this project), Only Content has changed. This is WPF project. If its a asp.
I suppose you need to specify Footer and Header in each window, but you want to have consistent look & feel.
In general, if you want to add some reusable visual stuff around content, you should use content control and edit its template.
If you need to specify also header for the content, you should use HeaderedContentControl and edit it's template.
If you need to specify also footer, just create you own control inherited from HeaderedContentControl and specify Footer property.
here is expampe of usage:
and the template:
Notice, that this have nothing to do with MVVM, but since Header and Footer are dependency properties, it could be easily used in any MVVM scenario.
I would definitely avoid binding to viewmodel properties in ControlTemplate if possible.