Pregunta

Por lo general, los controles WPF se declaran en los archivos .xaml y no en el código subyacente (archivos .xaml.cs). Sin embargo, a veces necesito usar algunos de esos controles en el código que está detrás para poder manipularlos. ¿Cómo puedo obtener el controlador de dicho control si " reside " en el archivo xaml?

¿Fue útil?

Solución

Puedes usar el método FindName () de la clase ControlTemplate.

// Finding the grid that is generated by the ControlTemplate of the Button
Grid gridInTemplate = (Grid)myButton1.Template.FindName("grid", myButton1);

Otros consejos

No estoy seguro de lo que estás preguntando, así que intentaré responder las dos instancias que estoy interpretando como tu pregunta.

1) Si desea declarar un control explícito y luego editarlo directamente, todo lo que tiene que hacer es establecer la propiedad del nombre como tal:

<Canvas x:Name="myCanvas"/>

A continuación, puede acceder al lienzo a través del Nombre como tal:

myCanvas.Background = Brushes.Blue;

2) Si desea declarar un control genérico y luego usarlo varias veces, puede hacerlo de la siguiente manera:

<Window>
   <Window.Resources>
      <Ellipse x:Key="myEllipse" Height="10" Width="10">
   </Window.Resources>
</Window>

Luego puedes acceder a ese control predefinido usando esta sintaxis en el código:

Ellipse tempEllipse = (Ellipse)FindResource("MyEllipse");

Si desea usar el Resourse como plantilla para varios controles, agregue x: Shared = " false " ;.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top