FrameworkContentElement.Parent Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene el elemento primario del árbol lógico de este elemento.
public:
property System::Windows::DependencyObject ^ Parent { System::Windows::DependencyObject ^ get(); };
public System.Windows.DependencyObject Parent { get; }
member this.Parent : System.Windows.DependencyObject
Public ReadOnly Property Parent As DependencyObject
Valor de propiedad
Elemento primario lógico para este elemento.
Ejemplos
En el ejemplo siguiente se comprueba si el Parent valor de TextPointer es de un tipo determinado.
// 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.
while (position != null)
{
// Is the current position just after an opening element tag?
if (position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart)
{
// If so, is the tag a Run?
if (position.Parent is Run)
break;
}
// Not what we're looking for; on to the next position.
position = position.GetNextContextPosition(LogicalDirection.Forward);
}
' 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
Comentarios
Tenga en cuenta que el elemento primario lógico de un elemento puede cambiar en función de la funcionalidad de la aplicación y mantener el valor de esta propiedad no reflejará ese cambio. Normalmente, debe obtener el valor inmediatamente antes de que lo necesite.
Consulte Árboles en WPF para obtener más información sobre el recorrido de árboles lógicos y los escenarios en los que adoptar este enfoque hacia la detección de elementos es adecuado.
El sistema de propiedades podría recalcular todos los valores de propiedad de un elemento cuando se vuelva aparentar, ya que algunas propiedades heredan valores a través del árbol lógico. El DataContext que se aplica a los enlaces también puede cambiar cuando los elementos son reparentados.
Cambiar el elemento primario de un elemento normalmente solo se realiza a través de la manipulación de colecciones, mediante métodos dedicados de adición o eliminación, o mediante la configuración de propiedades de contenido de elementos.
El escenario más típico para usar la Parent propiedad es obtener una referencia y, a continuación, obtener varios FrameworkContentElement valores de propiedad del elemento primario. En el caso de las plantillas, el Parent elemento de la plantilla finalmente será null. Para pegar este punto y extenderse al árbol lógico donde se aplica realmente la plantilla, use TemplatedParent.