Freigeben über


Gewusst wie: Bestimmen, ob sich ein benutzerdefiniertes Steuerelement in der Entwurfszeit oder der Laufzeit befindet

Wenn Sie den 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 ein Steuerelement mit komplexem Verhalten auch 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

  1. Suchen Sie in der Code-Behind-Datei für das benutzerdefinierte Steuerelement den Konstruktor für das benutzerdefinierte Steuerelement.

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

Siehe auch

Weitere Ressourcen

Vergleich zwischen Entwurfszeit- und Laufzeitverhalten

WPF-Designer-Erweiterbarkeit

WPF-Designer-Erweiterbarkeit