// Copyright (c) The Perspex Project. All rights reserved. // Licensed under the MIT license. See licence.md file in the project root for full license information. using System; using Perspex.Controls.Templates; using Perspex.Input; using Perspex.Layout; using Perspex.Styling; namespace Perspex.Controls { /// /// Interface for Perspex controls. /// public interface IControl : IVisual, ILogical, ILayoutable, IInputElement, INamed, IStyleable, IStyleHost { /// /// Raised when the control is attached to a rooted logical tree. /// event EventHandler AttachedToLogicalTree; /// /// Raised when the control is detached from a rooted logical tree. /// event EventHandler DetachedFromLogicalTree; /// /// Gets or sets the control's styling classes. /// new Classes Classes { get; set; } /// /// Gets or sets the control's data context. /// object DataContext { get; set; } /// /// Gets the data templates for the control. /// DataTemplates DataTemplates { get; } /// /// Gets the control's logical parent. /// IControl Parent { get; } } }