diff --git a/src/Perspex.Controls/TopLevel.cs b/src/Perspex.Controls/TopLevel.cs
index d6e3c37a75..4352888f83 100644
--- a/src/Perspex.Controls/TopLevel.cs
+++ b/src/Perspex.Controls/TopLevel.cs
@@ -29,13 +29,13 @@ namespace Perspex.Controls
/// Defines the property.
///
public static readonly PerspexProperty ClientSizeProperty =
- PerspexProperty.Register("ClientSize");
+ PerspexProperty.RegisterDirect(nameof(ClientSize), o => o.ClientSize);
///
/// Defines the property.
///
public static readonly PerspexProperty IsActiveProperty =
- PerspexProperty.Register("IsActive");
+ PerspexProperty.RegisterDirect(nameof(IsActive), o => o.IsActive);
///
/// Defines the property.
@@ -43,30 +43,13 @@ namespace Perspex.Controls
public static readonly PerspexProperty PointerOverElementProperty =
PerspexProperty.Register(nameof(IInputRoot.PointerOverElement));
- ///
- /// The render manager for the window.s
- ///
private readonly IRenderManager _renderManager;
-
- ///
- /// The window renderer.
- ///
private readonly IRenderer _renderer;
-
- ///
- /// The input manager for the window.
- ///
private readonly IInputManager _inputManager;
-
- ///
- /// The access key handler for the window.
- ///
private readonly IAccessKeyHandler _accessKeyHandler;
-
- ///
- /// The access keyboard navigation handler for the window.
- ///
private readonly IKeyboardNavigationHandler _keyboardNavigationHandler;
+ private Size _clientSize;
+ private bool _isActive;
///
/// Initializes static members of the class.
@@ -177,8 +160,8 @@ namespace Perspex.Controls
///
public Size ClientSize
{
- get { return GetValue(ClientSizeProperty); }
- private set { SetValue(ClientSizeProperty, value); }
+ get { return _clientSize; }
+ private set { SetAndRaise(ClientSizeProperty, ref _clientSize, value); }
}
///
@@ -186,8 +169,8 @@ namespace Perspex.Controls
///
public bool IsActive
{
- get { return GetValue(IsActiveProperty); }
- private set { SetValue(IsActiveProperty, value); }
+ get { return _isActive; }
+ private set { SetAndRaise(IsActiveProperty, ref _isActive, value); }
}
///
@@ -195,7 +178,8 @@ namespace Perspex.Controls
///
public ILayoutManager LayoutManager
{
- get; }
+ get;
+ }
///
/// Gets the platform-specific window implementation.