Costruendo il mio CueBanner per WPF mi ero imbattuto in uno strano comportamento, mi auto quoto:
Un adorner per poter essere visibile ha bisogno di un AdornerLayer in cui essere “ospitato”, ogni Window (non proprio…, ho un caso che sto cercando di debuggare in cui questo non succede…) ha implicitamente un AdornerLayer anche se non lo inseriamo noi nello xaml.
Quel “caso” è la classica sindrome da “allergia al manuale delle istruzioni”, lo scenario era questo, era perchè adesso funziona:
image
Controllo Ribbon, figosissimo, con in una Ribbontab la casella di testo in figura, peccato che la RibbonTab non fosse quella visualizzata allo startup e la conseguenza era che si schiantava tutto… oggi l’illuminazione… o meglio mi è caduto il manuale delle istruzioni sulla testa :-D.
L’inghippo era che la RibbonTab viene si caricata e inizializzata, e come conseguenza tutti i controlli figli, ma non fa parte del VisualTree fintanto che non viene visualizzata, mentre fa parte del LogicalTree, per un’introduzione a LogicalTree e VisualTree: http://www.codeproject.com/KB/WPF/WpfElementTrees.aspx
.m