Procedura: determinare se un controllo personalizzato è in fase di progettazione o in fase di esecuzione

Quando si utilizza l'estensibilità per personalizzare WPF Designer per Visual Studio, è possibile personalizzare il comportamento di un controllo in fase di progettazione o di esecuzione. È possibile personalizzare in questo modo l'esperienza di progettazione degli utenti finali. Ad esempio, se si crea un pulsante personalizzato, è possibile scegliere di visualizzare il testo sul pulsante in fase di progettazione ma non in fase di esecuzione. È inoltre possibile personalizzare un controllo che esibisce un comportamento complesso in modo che quel comportamento si verifichi solo in fase di esecuzione. Ad esempio, un controllo che accede a un database automaticamente deve accedervi in fase di esecuzione ma non in fase di progettazione.

È possibile determinare se un controllo è in esecuzione in una delle due fasi chiamando il metodo GetIsInDesignMode.

Utilizzo della proprietà della modalità progettazione

In questa procedura, il testo su un controllo pulsante personalizzato viene visualizzato in fase di progettazione, ma non in fase di esecuzione.

Per utilizzare la proprietà della modalità progettazione

  1. Nel file code-behind per il controllo personalizzato, individuare il costruttore per il controllo personalizzato.

  2. Aggiungere il codice che chiama il metodo GetIsInDesignMode e personalizzare il comportamento del controllo di conseguenza. Viene passato un riferimento al controllo personalizzato come argomento a GetIsInDesignMode e il metodo determina se il controllo è in modalità progettazione. Ad esempio, aggiungere codice come quello riportato di seguito:

    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.";
                }
            }
        }
    }
    

Vedere anche

Altre risorse

Confronto dei comportamenti tra fase di progettazione e fase di esecuzione

Informazioni sull'estensibilità Progettazione WPF

Estensibilità di Progettazione WPF