// Copyright (c) The Avalonia Project. All rights reserved. // Licensed under the MIT license. See licence.md file in the project root for full license information. using System; using Avalonia.Styling; namespace Avalonia.Controls { /// /// Provides the base class for defining a new control that encapsulates related existing controls and provides its own logic. /// public class UserControl : ContentControl, IStyleable, INameScope { private readonly NameScope _nameScope = new NameScope(); /// event EventHandler INameScope.Registered { add { _nameScope.Registered += value; } remove { _nameScope.Registered -= value; } } /// event EventHandler INameScope.Unregistered { add { _nameScope.Unregistered += value; } remove { _nameScope.Unregistered -= value; } } /// Type IStyleable.StyleKey => typeof(UserControl); /// void INameScope.Register(string name, object element) { _nameScope.Register(name, element); } /// object INameScope.Find(string name) { return _nameScope.Find(name); } /// void INameScope.Unregister(string name) { _nameScope.Unregister(name); } } }