Pergunta

Normalmente, os controles WPF são declarados nos arquivos .xaml e não no código por trás (arquivos .xaml.cs). No entanto, às vezes eu preciso usar alguns desses controles por trás do código, a fim de manipulá-los. Como posso obter o identificador de tal controle se ele "reside" no arquivo XAML?

Foi útil?

Solução

Você pode usar o método FindName () da classe ControlTemplate.

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

Outras dicas

Não tenho certeza sobre o que está pedindo, por isso vou tentar responder a ambas as instâncias que eu estou interpretando como a sua pergunta.

1) Se você quiser declarar um controle explícito, e editar, em seguida, diretamente, tudo que você tem a fazer é definir a propriedade nome como tal:

<Canvas x:Name="myCanvas"/>

Você pode acessar a tela através do nome como tal:

myCanvas.Background = Brushes.Blue;

2) Se você estiver olhando para declarar um controlo genérico e, em seguida, usá-lo várias vezes, você pode fazê-lo como este:

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

Você pode acessar esse controle predefinido usando esta sintaxe em código:

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

Se você quiser usar o Resourse como um modelo para vários controles, adicione x: Shared = "false"

.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top