Domanda

Di solito, i controlli WPF sono dichiarati nei file .xaml e non nel codice dietro (file .xaml.cs). Tuttavia, a volte ho bisogno di usare alcuni di questi controlli nel codice per manipolarli. Come posso ottenere la gestione di tale controllo se "risiede"? nel file xaml?

È stato utile?

Soluzione

È possibile utilizzare il metodo FindName () della classe ControlTemplate.

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

Altri suggerimenti

Non sono sicuro di ciò che stai chiedendo, quindi cercherò di rispondere ad entrambi i casi che sto interpretando come tua domanda.

1) Se si desidera dichiarare un controllo esplicito e quindi modificarlo direttamente, è sufficiente impostare la proprietà name in questo modo:

<Canvas x:Name="myCanvas"/>

È quindi possibile accedere all'area di disegno tramite il Nome in quanto tale:

myCanvas.Background = Brushes.Blue;

2) Se stai cercando di dichiarare un controllo generico e quindi utilizzarlo più volte, puoi farlo in questo modo:

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

Puoi quindi accedere a quel controllo predefinito usando questa sintassi nel codice:

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

Se si desidera utilizzare Resourse come modello per più controlli, aggiungere x: Shared = " false " ;.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top