giusto per concludere il 3d. Non ho su questo pc wpf inspector ma ho trovato questo esempio su msdn (nel menu a sx è pieno di esempi di control template):
http://msdn.microsoft.com/en-us/library/aa969824(v=vs.85).aspx
sinceramente pensavo peggio per una finestra invece si puo fare un esempio abbastanza semplice. dunque,
se guardi la prima parte c'è un adorner che semplicemente contiene il contentpresenter che fa da placeholder (ci deve essere in tutti i template di controlli contenitori) e in sovrapposizione il resizegrip (in sovrapposizione perché il grid è a una cella per cui più elementi in una cella si sovrappongono).
A parte il contentpresenter l'unico controllo presente ha ragione di essere in quanto interagisce con il comportamento della finestra, è il resizegrip. Per comportamento intendo soprattutto i trigger ma potrebbe anche essere una proprietà. In questo esempio si agisce sul resizegrip in base ad un trigger della window.
Potresti creare un grid più complesso, inserirci dentro diversi elementi ma sei limitato a tre possibilità:
- elementi statici: es. un logo, un testo che rimangono fissi e con cui non puoi interagire dall'esterno.
- elementi che reagiscono con i trigger del controllo. L'esempio è proprio il resizegrip a cui si imposta la visibilità in base al valore della proprietà che indica la possibilità di fare il resize.
-elementi bindati attraverso il TemplateBinding ad una proprietà della window.
per esempio volendo inserire una label che conterrà il titolo della finestra puoi inserire
<label Text="{TemplateBinding Title}" />
Il binding tra controlli come quello di sopra è incrediblmente versatile perche potresti anche sbizzarirti con i valueconverter ma non so se gli hai gia visti. Si tratta di dare la possibilità di bindare una proprietà di un tipo (es. testo) a proprietà di un altro tipo (es.color).
Quello che non puoi fare è contare su proprietà personalizzate, o comportamenti non previste dal controllo window.
Concludo dicendo che l'esempio sopra sicuramente non contiene l'elenco di tutti i trigger di Window, ispeziona una Window con wpf inspector cosi scoprirai altri trigger con cui far interagire ulteriori controlli interni della tua personalizzazione.
![]()