Gets the parent in the logical tree for this element.
Assembly: PresentationFramework (in PresentationFramework.dll)
Note that the logical parent of an element can potentially change depending on your application functionality, and keeping the value of this property will not reflect that change. You typically should get the value immediately before you need it.
See Trees in WPF for more information about traversing logical trees, and the scenarios where taking this approach towards element discovery is appropriate.
The property system will potentially recalculate all property values of an element when it is reparented, because some properties inherit values through the logical tree. The DataContext that applies for bindings can also change when elements are reparented.
Changing an element's parent is typically only done through manipulation of collections, by using dedicated add or remove methods, or through setting content properties of elements.
The most typical scenario for using the property is to obtain a reference and then get various FrameworkContentElement property values from the parent. For templates, the of the template eventually will be Nothing. To get past this point and extend into the logical tree where the template is actually applied, use TemplatedParent.
The following example checks to see whether the of a TextPointer is of a particular type.
' Traverse content in forward direction until the position is immediately after the opening ' tag of a Run element, or the end of content is encountered. Do While position IsNot Nothing ' Is the current position just after an opening element tag? If position.GetPointerContext(LogicalDirection.Backward) = TextPointerContext.ElementStart Then ' If so, is the tag a Run? If TypeOf position.Parent Is Run Then Exit Do End If End If ' Not what we're looking for on to the next position. position = position.GetNextContextPosition(LogicalDirection.Forward) Loop
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2