Compartir a través de


Cómo: Determinar si un control personalizado está en tiempo de diseño o en tiempo de ejecución

Actualización: noviembre 2007

Cuando se usa la extensibilidad para personalizar Windows Presentation Foundation (WPF) Designer for Visual Studio, se puede personalizar el comportamiento de un control en tiempo de diseño o en tiempo de ejecución. Puede personalizar la experiencia en tiempo de diseño para los usuarios finales. Por ejemplo, si crea un botón personalizado, puede elegir mostrar el texto en el botón en tiempo de diseño pero no en tiempo de ejecución. También puede personalizar un control que muestre un comportamiento complejo de modo que el comportamiento sólo se produzca en tiempo de ejecución. Por ejemplo, un control que obtiene acceso a una base de datos automáticamente debería obtener acceso a la base de datos en tiempo de ejecución, pero no en tiempo de diseño.

Puede determinar si un control se ejecuta en tiempo de diseño o en tiempo de ejecución llamando al método GetIsInDesignMode.

Utilizar la propiedad de modo de diseño

En este procedimiento se muestra el texto en un control de botón personalizado en tiempo de diseño, pero no en tiempo de ejecución.

Para utilizar la propiedad de modo de diseño

  1. En el archivo de código subyacente del control personalizado, busque el constructor del mismo.

  2. Agregue código que llame al método GetIsInDesignMode y personalice el comportamiento del control en consecuencia. Se pasa una referencia al control personalizado como un argumento a GetIsInDesignMode y determina si el control está en modo de diseño. Por ejemplo, agregue código como el siguiente ejemplo:

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

Vea también

Otros recursos

Comportamiento en tiempo de diseño y comportamiento en tiempo de ejecución

Introducción a la extensibilidad de WPF Designer

Extensibilidad de WPF Designer