AdornerDecorator - was spielt es eine Rolle, wo Sie platziert werden?
Einige xaml-Code wie dieser:
<Grid Name="grid">
<AdornerDecorator>
<TextBox Height="23" HorizontalAlignment="Left" Name="textBox1" Width="120" />
</AdornerDecorator>
</Grid>
WPF-Snoop-Dienstprogramm zeigt textBox1 ist ein Kind AdornerDecorator (wie man es erwarten würde), sondern auch, dass die AdornerLayer, dass AdornerDecorator schafft auch ein Kind. Wie eine benutzerdefinierte adorner Hinzugefügt, um die AdornerLayer angezeigt werden kann, die 'außerhalb' der textbox, die AdornerLayer Zeichnung Oberfläche muss Strecken außerhalb zu (vermutlich alle über dem Fenster).
So, was wirkliche Bedeutung hat die Platzierung von AdornerDecorator haben (da wir binden Sie ein UI-element für die benutzerdefinierte adorner, die wir in der AdornerLayer)? Ich weiß AdornerLayer.GetAdorner(textBox1) die ersten adorner-Ebene in den visuellen Baum von textbox1, aber was spielt es eine Rolle wo das ist (wie der custom ardorner Hinzugefügt wird, die Ebene und die benutzerdefinierte ardoner weiß, welches element, an das es gebunden ist)?
- Sie können check out meine Ausgabe zu sehen, die Bedeutung der Platzierung der AdornerDecorator. stackoverflow.com/questions/11477518/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die kurze Antwort ist, dass es darauf ankommt, wenn Sie beginnen, mit controls zu tun, dass die überlappung mit anderen Kontrollen (in der z-index-Ebene) und Sie kümmern sich darum, ob oder ob nicht eine bestimmte adorner Schicht zeigt auf der Oberseite der überlappenden Steuerelementen. Zum Beispiel, wenn Sie eine ErrorTemplate, seinen Inhalt zu Rendern in ein adorner Schicht und wenn Sie nicht liefern eine
<AdornerDecorator>
in Ihrer app (was bedeutet, dass Sie nur die eine, die in den meisten Fenster-Vorlagen), dann können Sie am Ende mit diese passiert.Indem Sie die
<AdornerDecorator>
wo wir wollen, wir können Steuern, wie diese überlappung verhält.