diff --git a/src/Avalonia.Controls/Platform/IWindowImpl.cs b/src/Avalonia.Controls/Platform/IWindowImpl.cs
index 8a1554d344..89fe00453c 100644
--- a/src/Avalonia.Controls/Platform/IWindowImpl.cs
+++ b/src/Avalonia.Controls/Platform/IWindowImpl.cs
@@ -37,6 +37,11 @@ namespace Avalonia.Platform
/// true if the window is enabled, or false if it is disabled.
void SetEnabled(bool enable);
+ ///
+ /// Gets a value to indicate if the window is currently enabled.
+ ///
+ bool IsEnabled { get; }
+
///
/// Called when a disabled window received input. Can be used to activate child windows.
///
diff --git a/src/Avalonia.DesignerSupport/Remote/PreviewerWindowImpl.cs b/src/Avalonia.DesignerSupport/Remote/PreviewerWindowImpl.cs
index 787f44887f..8a9250b666 100644
--- a/src/Avalonia.DesignerSupport/Remote/PreviewerWindowImpl.cs
+++ b/src/Avalonia.DesignerSupport/Remote/PreviewerWindowImpl.cs
@@ -91,6 +91,8 @@ namespace Avalonia.DesignerSupport.Remote
public bool NeedsManagedDecorations => false;
+ public bool IsEnabled => true;
+
public void Activate()
{
}
diff --git a/src/Avalonia.DesignerSupport/Remote/Stubs.cs b/src/Avalonia.DesignerSupport/Remote/Stubs.cs
index eedfc52d9d..a287605d45 100644
--- a/src/Avalonia.DesignerSupport/Remote/Stubs.cs
+++ b/src/Avalonia.DesignerSupport/Remote/Stubs.cs
@@ -47,6 +47,8 @@ namespace Avalonia.DesignerSupport.Remote
public Thickness OffScreenMargin { get; } = new Thickness();
+ public bool IsEnabled => true;
+
public WindowStub(IWindowImpl parent = null)
{
if (parent != null)
diff --git a/src/Avalonia.Native/WindowImpl.cs b/src/Avalonia.Native/WindowImpl.cs
index f3b60f07be..328d64da25 100644
--- a/src/Avalonia.Native/WindowImpl.cs
+++ b/src/Avalonia.Native/WindowImpl.cs
@@ -220,5 +220,8 @@ namespace Avalonia.Native
{
_native.SetEnabled(enable.AsComBool());
}
+
+ // TODO: Implement
+ public bool IsEnabled => throw new NotImplementedException();
}
}
diff --git a/src/Avalonia.X11/X11Window.cs b/src/Avalonia.X11/X11Window.cs
index 37260aa78b..3761b481b9 100644
--- a/src/Avalonia.X11/X11Window.cs
+++ b/src/Avalonia.X11/X11Window.cs
@@ -1041,6 +1041,8 @@ namespace Avalonia.X11
_disabled = !enable;
}
+ public bool IsEnabled => !_disabled;
+
public void SetExtendClientAreaToDecorationsHint(bool extendIntoClientAreaHint)
{
}
diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs
index 3a3342fd14..50744a9e1a 100644
--- a/src/Windows/Avalonia.Win32/WindowImpl.cs
+++ b/src/Windows/Avalonia.Win32/WindowImpl.cs
@@ -595,6 +595,8 @@ namespace Avalonia.Win32
public void SetEnabled(bool enable) => EnableWindow(_hwnd, enable);
+ public bool IsEnabled => IsWindowEnabled(_hwnd);
+
public void BeginMoveDrag(PointerPressedEventArgs e)
{
_mouseDevice.Capture(null);