Eccomi, in generale ti sconsiglio di crearti dei tuoi controlli custom, perchè mentre prima in windows forms era quasi sempre necessario per avere un buon livello di riutilizzo di codice/viste, ora con WPF è esattamente l'opposto, si tende a non creare mai custom control per riutilizzare codice/viste, ma si sfruttano i template e gli style sui controlli predefiniti di WPF, che ti danno il pieno controllo di come i controlli verranno renderizzati, di fatto i controlli WPF sono in grado di ricoprire la maggior parte delle necessità, perchè è un concetto di comportamenti e funzionalità che un controllo da ha disposizione e non è più legato all'aspetto visivo, prima con windows forms le due cose erano fortemente legate, si poteva cambiare qualcosa dello stile di un controllo, ma poca roba, sicuramente non era possibile dare un look & feel completamente diverso a proprio piacimento. Con l'avvento di WPF, questo concetto è cambiato drasticamente, ora la parte più importante di un controllo sono i comportamenti e le funzionalità che implementa, mentre la sua rappresentazione a video è decisamente poco rilevante! Microsoft per ogni controllo ovviamente da una rappresentazione di default, che è il template di default che ogni controllo si porta dietro se non glie ne viene specificato un altro. Il template a volte è la COMPLETA rappresentazione a video del controllo, e a volte solo una parte. Il template di un Calendar ad esempio è fatto da tanti altri controlli base di wpf e di conseguenza il suo template rappresenta esattamente tutto quello che vedi a video, ed è possibile stravolgerlo completamente, mentre ad esempio il template di una textbox rappresenta solo l'involucro che sta attorno allo spazio per digitare, questo perchè il fatto di digitare non sarebbe modificabile e avrebbe poco senso, il senso è potere modificare tutto quello che ci sta attorno, il bordino, vari comportamenti sul focus, ecc... la dimostrazione che i Template sono la rappresentazione a video dei controlli la puoi avere togliendo il template di un qualsiasi controllo, vedrai che lo stesso sparisce:
<TextBox>
<TextBox.Template>
<ControlTemplate>
</ControlTemplate>
</TextBox.Template>
</TextBox>
vedremo che a video non verrà renderizzato alcuna textbox, mentre con il default template sappiamo tutti come si presenta una textbox.
Detto questo ti ho preparato un esempio in entrambe le salse, un esempio sfruttando controlli custom e dependency property, e l'altro esempio quella che ti consiglierei) sfruttando i semplici controlli di wpf con template opportunamente modificati per rappresentare a video esattamente quello che ti interessa vedere.
I custom control possono essere utili se ti rendi conto che un controllo può essere riutilizzato in più applicazioni e non vuoi portarti dietro semplicemente gli stili, ma direttamente una librerie contenente il controllo completo. Inoltre aggiungerei che comunque un custom control dovrebbe per lo meno aggiungere anche comportamenti nuovi rispetto al controllo che si sta estendendo, e non solo uno stile diverso, perchè per quello rimangono buoni Style + Template, con la possibilità di scambiare Dictionary (che sono come stylesheet per web) tra applicazioni diverse, contenenti gli stili più disperati per ogni esigenza.
Questo è il codice completo della soluzione che preferisco a style + template:
Lo screenshot dell'app di prova:

1000x750
25Kb
Non ho messo le immagini per semplicità, ma è sufficiente impostare la proprietà Header per esteso, nestato nel markup:
<HeaderedContentControl Content="Preventivi">
<HeaderedContentControl.Header>
<Image Source="..."/>
</HeaderedContentControl.Header>
</HeaderedContentControl>
Spero di averti fatto un po' di chiarezza.
Ciao,
Michael Denny
Software Developer & Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
Twitter: @dennymic