# Code-behind [Window](https://docs.avaloniaui.net/docs/controls/window) and [UserControl](https://docs.avaloniaui.net/docs/controls/usercontrol) files also have an associated _code-behind_ file which usually has the extension `.xaml.cs` or `.axaml.cs` and may be displayed collapsed under the XAML file in your editor. Below you can see a `MainWindow.xaml` file along with its markdown file `MainWindow.xaml.cs` in Visual Studio: ![Code-behind in Visual Studio](../../.gitbook/assets/codebehind-vs.png) The code-behind file by default defines a .NET class with the same name as your XAML file, e.g. ```csharp using Avalonia; using Avalonia.Controls; using Avalonia.Markup.Xaml; namespace AvaloniaApplication1 { public class MainWindow : Window { public MainWindow() { InitializeComponent(); #if DEBUG AttachDevTools(); #endif } private void InitializeComponent() { AvaloniaXamlLoader.Load(this); } } } ``` Note that this class definition corresponds closely to the XAML file: ```markup ``` * The base class, `Window` is the root element of the XAML file * The `x:Class` attribute references the fully-qualified name of the class defined in code-behind If you make any changes to the base class, namespace, or name of the class, make sure to update both the code-behind and the XAML to ensure they match. In addition, the class contains two more things of interest: * It enables [DevTools](https://docs.avaloniaui.net/docs/getting-started/developer-tools) in debug mode * It defines an `InitializeComponent` method which is used to load the XAML at runtime ### Locating Controls One of the main uses of the code-behind file is to manipulate controls using C\# code. To do this you'll usually first want to get a reference to a named control. This can be done using the `FindControl` method: ```markup ``` ```csharp public class MainWindow : Window { private Button myButton; public MainWindow() { InitializeComponent(); #if DEBUG AttachDevTools(); #endif } private void InitializeComponent() { AvaloniaXamlLoader.Load(this); myButton = this.FindControl ``` ```csharp public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } public void MyButton_Click(object sender, RoutedEventArgs e) { // Handle click here. } } ```