65.9K
CodeProject is changing. Read more.
Home

Detect Design Time Mode in Silverlight

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (5 votes)

Feb 27, 2010

CPOL
viewsIcon

26341

In order to detect whether your application is executing in a designer you can either use the GetIsInDesignMode method of DesignerProperties,or the Dependency Property metadata directly like so:C#:bool designTime = (bool)DesignerProperties.IsInDesignModeProperty.GetMetadata( ...

In order to detect whether your application is executing in a designer you can either use the GetIsInDesignMode method of DesignerProperties, or the Dependency Property metadata directly like so: C#:
bool designTime = (bool)DesignerProperties.IsInDesignModeProperty.GetMetadata(
    typeof(DependencyObject)).DefaultValue
VB.NET:
dim designTime as Boolean = CBool(DesignerProperties.IsInDesignModeProperty.GetMetadata( _ 
GetType(DependencyObject)).DefaultValue
This can be then rolled into a static class like so: C#:
public static class DesignTimeEnvironment
{
    static bool? designTime;
    public static bool DesignTime
    {
        get
        {
            if (!designTime.HasValue)
            {
                designTime = (bool)DesignerProperties.IsInDesignModeProperty.GetMetadata(
                      typeof(DependencyObject)).DefaultValue;
            }
            return designTime.Value;
        }
    }
}
VB.NET:
Public Class DesignTimeEnvironment
    Public Shared ReadOnly Property DesignTime As Boolean
        Get
            If Not DesignTimeEnvironment.designTime.HasValue Then
                DesignTimeEnvironment.designTime = New Boolean?(CBool( _ 
                   DesignerProperties.IsInDesignModeProperty.GetMetadata( _ 
GetType(DependencyObject)).DefaultValue))
            End If
            Return DesignTimeEnvironment.designTime.Value
        End Get
    End Property
    Private Shared designTime As Boolean?
End Class