Como: determinar se um controle personalizado está em tempo de design ou Run Time

When you use extensibility to customize the WPF Designer for Visual Studio, you might want to customize the behavior of a control at design time or run time. You can customize the design-time experience for your end users. Por exemplo, se você criar um botão personalizado, você pode optar por exibir o texto do botão em tempo de design, mas não em tempo de execução. Você também pode personalizar um controle que exibe o comportamento complexo, para que o comportamento só ocorre em tempo de execução. Por exemplo, um controle que acessa um banco de dados automaticamente deve access the banco de dados de, em tempo de execução, mas não em tempo de design.

You can determine whether a control is running at design time or at run time by calling the GetIsInDesignMode method.

Using the Design Mode Property

In this procedure you display text on a custom button control at design time, but not at run time.

To use the design mode property

  1. In the code-behind file for your custom control, locate the constructor for your custom control.

  2. Add code that calls the GetIsInDesignMode method, and customize the behavior of your control accordingly. You pass a reference to your custom control as an argument to GetIsInDesignMode and it determines whether the control is in design mode. For example, add code such as the following:

    Namespace CustomControlLibrary
    
        Public Class ButtonWithDesignTime
            Inherits System.Windows.Controls.Button
    
            Public Sub New()
    
                If System.ComponentModel.DesignerProperties.GetIsInDesignMode(Me) Then
                    Me.Content = "This button is in design mode."
                End If
            End Sub
        End Class
    End Namespace
    
    namespace CustomControlLibrary
    {
        public class ButtonWithDesignTime : System.Windows.Controls.Button
        {
            public ButtonWithDesignTime()
            {
                if (System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))
                {
                    this.Content = "This button is in design mode.";
                }
            }
        }
    }
    

Consulte também

Outros recursos

Tempo de design versus Run Time comportamento

Noções básicas sobre extensibilidade Designer WPF

Extensibilidade do WPF Designer