.NET Framework Class Library
UIElementIsEnabled Property

Gets or sets a value indicating whether this element is enabled in the user interface (UI). This is a dependency property.

Namespace:   System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
Public Property IsEnabled As [%$TOPIC/ms588701_en-us_VS_110_1_0_0_0_0%]
public [%$TOPIC/ms588701_en-us_VS_110_1_0_1_0_0%] IsEnabled { get; set; }
virtual property [%$TOPIC/ms588701_en-us_VS_110_1_0_2_0_0%] IsEnabled {
	[%$TOPIC/ms588701_en-us_VS_110_1_0_2_0_1%] get () sealed;
	void set ([%$TOPIC/ms588701_en-us_VS_110_1_0_2_0_2%] value) sealed;
abstract IsEnabled : [%$TOPIC/ms588701_en-us_VS_110_1_0_3_0_0%] with get, set 
override IsEnabled : [%$TOPIC/ms588701_en-us_VS_110_1_0_3_0_1%] with get, set
final function get IsEnabled () : [%$TOPIC/ms588701_en-us_VS_110_1_0_4_0_0%] 
final function set IsEnabled (value : [%$TOPIC/ms588701_en-us_VS_110_1_0_4_0_1%])
<object IsEnabled="[%$TOPIC/ms588701_en-us_VS_110_1_0_5_0_0%]" .../>

Property Value

Type: SystemBoolean
true if the element is enabled; otherwise, false. The default value is true.


Dependency Property Information

Identifier field


Metadata properties set to true



Note that this property is influenced by class-specific implementations of IsEnabledCore on particular elements, often at runtime. Therefore, the default value listed here is sometimes not effective. For instance, a ScrollBar will be IsEnabled false whenever it is determined that there is no need to support a scrollbar. Attempting to set this value will also potentially be overridden by the value returned by IsEnabledCore.

Elements that are not enabled do not participate in hit testing or focus and therefore will not be sources of input events.


The following example shows a handler on one button that when executed will set IsEnabled false on another named button b1.

Public Partial Class RoutedEventAddRemoveHandler
    Private Sub MakeButton(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Dim b2 As Button = New Button()
        b2.Content = "New Button" 
        AddHandler b2.Click, AddressOf Onb2Click
        root.Children.Insert(root.Children.Count, b2)
        DockPanel.SetDock(b2, Dock.Top)
        text1.Text = "Now click the second button..."
        b1.IsEnabled = False 
    End Sub 
    Private Sub Onb2Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
        text1.Text = "New Button (b2) Was Clicked!!" 
    End Sub
public partial class RoutedEventAddRemoveHandler {
    void MakeButton(object sender, RoutedEventArgs e)
        Button b2 = new Button();
        b2.Content = "New Button";
        // Associate event handler to the button. You can remove the event  
        // handler using "-=" syntax rather than "+=".
        b2.Click  += new RoutedEventHandler(Onb2Click);
        root.Children.Insert(root.Children.Count, b2);
        DockPanel.SetDock(b2, Dock.Top);
        text1.Text = "Now click the second button...";
        b1.IsEnabled = false;
    void Onb2Click(object sender, RoutedEventArgs e)
        text1.Text = "New Button (b2) Was Clicked!!";
Version Information

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1