FrameworkElement.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 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 de este elemento.
Ejemplos
En el ejemplo siguiente se muestra el código que comprueba el elemento primario de un elemento y, a continuación, usa valores de propiedad del elemento primario para establecer propiedades en el elemento secundario que coincidan. En este caso, se trata de propiedades que afectan al tamaño de representación.
private void OnUIReady(object sender, System.EventArgs e)
{
LinePane.Width = ((StackPanel)LinePane.Parent).ActualWidth;
LinePane.Height = ((StackPanel)LinePane.Parent).ActualHeight;
DesignerPane.MouseLeave += new System.Windows.Input.MouseEventHandler(DesignerPane_MouseLeave);
this.SizeChanged += new SizeChangedEventHandler(Window1_SizeChanged);
}
Private Sub OnUIReady(ByVal sender As Object, ByVal e As System.EventArgs)
LinePane.Width = (CType(LinePane.Parent, StackPanel)).ActualWidth
LinePane.Height = (CType(LinePane.Parent, StackPanel)).ActualHeight
AddHandler DesignerPane.MouseLeave, AddressOf DesignerPane_MouseLeave
AddHandler SizeChanged, AddressOf Window1_SizeChanged
End Sub
Comentarios
Parent puede ser null
en los casos en los que se creó una instancia de un elemento, pero no está asociado a ningún árbol lógico que finalmente se conecte al elemento raíz de nivel de página o al objeto de aplicación.
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, debería obtener el valor inmediatamente antes de que lo necesite.
Consulte Árboles en WPF para obtener más información sobre el recorrido de árbol lógico y los escenarios en los que usar Parent como técnica de detección de elementos primarios es adecuado.
El motor de propiedades volverá a calcular potencialmente todos los valores de propiedad de un elemento cuando sea primario, 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 se vuelven aparentar.
Cambiar el elemento primario de un elemento normalmente solo se realiza mediante 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 FrameworkElement valores de propiedad del elemento primario. En el caso de las plantillas, el Parent elemento de la plantilla finalmente será null
. Para superar este punto y extenderse al árbol lógico donde se aplica realmente la plantilla, use TemplatedParent.
Tenga en cuenta que esta propiedad no notifica elementos primarios del árbol visual en los casos en los que varían de los elementos primarios del árbol lógico. Los elementos primarios del árbol visual no suelen ser importantes para los casos generales de la aplicación, pero pueden ser los elementos primarios deseados para determinados casos de nivel visual. Vea VisualTreeHelper.