Procedura: trovare elementi generati da un oggetto ControlTemplate

Aggiornamento: novembre 2007

In questo esempio viene illustrata la procedura per la ricerca di elementi generati da un oggetto ControlTemplate.

Esempio

Nell'esempio seguente viene illustrato uno stile che consente di creare un oggetto ControlTemplate semplice per la classe Button:

<Style TargetType="{x:Type Button}">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type Button}">
        <Grid Margin="5" Name="grid">
          <Ellipse Stroke="DarkBlue" StrokeThickness="2">
            <Ellipse.Fill>
              <RadialGradientBrush Center="0.3,0.2" RadiusX="0.5" RadiusY="0.5">
                <GradientStop Color="Azure" Offset="0.1" />
                <GradientStop Color="CornflowerBlue" Offset="1.1" />
              </RadialGradientBrush>
            </Ellipse.Fill>
          </Ellipse>
          <ContentPresenter Name="content" Margin="10"
                            HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </Grid>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

Per trovare un elemento all'interno del modello, una volta applicato il modello stesso, è possibile chiamare il metodo FindName di Template. Nell'esempio seguente viene creata una finestra di messaggio in cui viene indicato il valore della larghezza effettiva dell'oggetto Grid all'interno del modello di controllo:

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

// Do something to the ControlTemplate-generated grid
MessageBox.Show("The actual width of the grid in the ControlTemplate: "
    + gridInTemplate.GetValue(Grid.ActualWidthProperty).ToString());

Per l'esempio completo, vedere Esempio di ricerca di elementi generati da un modello.

Vedere anche

Attività

Procedura: trovare elementi generati da un oggetto DataTemplate

Concetti

Applicazione di stili e modelli

Ambiti dei nomi WPF

Strutture ad albero in WPF