Gewusst wie: Bestimmen, ob sich ein benutzerdefiniertes Steuerelement in der Entwurfszeit oder der Laufzeit befindet
Aktualisiert: November 2007
Wenn Sie den Windows Presentation Foundation (WPF)-Designer für Visual Studio mithilfe der Erweiterbarkeit anpassen, möchten Sie möglicherweise das Verhalten eines Steuerelements zur Entwurfszeit oder zur Laufzeit anpassen. Sie können die Entwurfszeitumgebung für die Endbenutzer anpassen. Wenn Sie z. B. eine benutzerdefinierte Schaltfläche erstellen, können Sie festlegen, dass Text auf der Schaltfläche zur Entwurfszeit, jedoch nicht zur Laufzeit angezeigt wird. Sie können auch ein Steuerelement, das komplexes Verhalten aufweist, so anpassen, dass dieses Verhalten nur zur Laufzeit auftritt. Beispielsweise sollte ein Steuerelement, das automatisch auf eine Datenbank zugreift, zur Laufzeit, jedoch nicht zur Entwurfszeit auf die Datenbank zugreifen.
Sie können bestimmen, ob ein Steuerelement zur Entwurfszeit oder zur Laufzeit ausgeführt wird, indem Sie die GetIsInDesignMode-Methode aufrufen.
Verwenden der Entwurfsmoduseigenschaft
In diesem Verfahren zeigen Sie Text auf einem benutzerdefinierten Schaltflächen-Steuerelement zur Entwurfszeit, jedoch nicht zur Laufzeit an.
So verwenden Sie die Entwurfsmoduseigenschaft
Suchen Sie in der Code-Behind-Datei für das benutzerdefinierte Steuerelement den Konstruktor für das benutzerdefinierte Steuerelement.
Fügen Sie Code hinzu, der die GetIsInDesignMode-Methode aufruft, und passen Sie das Verhalten des Steuerelements entsprechend an. Sie übergeben einen Verweis auf das benutzerdefinierte Steuerelement als ein Argument an GetIsInDesignMode, und es wird bestimmt, ob sich das Steuerelement im Entwurfsmodus befindet. Fügen Sie beispielsweise folgenden Code hinzu:
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."; } } } }