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
Nel file code-behind per il controllo personalizzato, individuare il costruttore per il controllo personalizzato.
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