Partilhar via


Como: Determinar se um controle personalizado está em time de design ou time de execução

Quando você usa a extensibilidade para personalizar o Windows Presentation Foundation (WPF) Designer for Visual Studio, convém personalizar o comportamento de um controle ou uma propriedade em tempo de design.Você pode personalizar a experiência em tempo de design para usuários finais.Por exemplo, se você criar um botão personalizado, você pode optar exibir texto no botão no tempo de design, mas não no 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 acessar o banco de dados no tempo de execução, mas não no tempo de design.

Você pode determinar se um controle está sendo executado no tempo de design ou tempo de execução chamando o método GetIsInDesignMode.

Usando a propriedade do modo de design

Nesse procedimento você exibir texto em um controle de botão personalizado no tempo de design, mas não no tempo de execução.

Para usar a propriedade Modo de design

  1. No code-behind file para o controle personalizado, localize o construtor para o controle personalizado.

  2. Adicione um código que chama o método GetIsInDesignMode, e personalizar o comportamento do seu controle de acordo.Você passar uma referência para o controle personalizado como um argumento para GetIsInDesignMode e determina se o controle está no modo de design.Por exemplo, adicione um código como o seguinte:

    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