Поделиться через


Практическое руководство. Определение режима, в котором находится пользовательский элемент управления (режим разработки или режиме выполнения)

При использовании расширения среды для настройки конструктора Конструктор WPF для Visual Studio может потребоваться настройка поведения элемента управления во время разработки или выполнения. Можно настроить поведение элемента во время разработки для конечных пользователей. Например, при создании пользовательской кнопки можно установить отображение текста на кнопке во время разработки, но не во время выполнения. Можно также настроить элемент управления со сложным поведением таким образом, чтобы это поведение реализовывалось только во время выполнения. Например, элемент управления, автоматически обращающийся к базе данных, должен получать доступ к базе данных во время выполнения, но не во время разработки.

Определить, когда должен выполняться элемент управления — во время разработки или во время выполнения, можно с помощью метода GetIsInDesignMode.

Использование свойства режима конструктора

В этой процедуре текст на пользовательском элементе управления "кнопка" отображается во время разработки, но не во время выполнения.

Использование свойства режима конструктора

  1. В файле кода программной части для пользовательского элемента управления найдите конструктор пользовательского элемента управления.

  2. Добавьте код, вызывающий метод GetIsInDesignMode, и соответствующим образом настройте поведение элемента управления. При передаче ссылки на пользовательский элемент управления в качестве аргумента метода GetIsInDesignMode этот метод определяет, находится ли элемент управления в режиме разработки. Добавьте, например, следующий код:

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

См. также

Другие ресурсы

Сравнение поведения во время разработки и во время выполнения

Общее представление о расширяемости конструктора WPF

Расширяемость среды конструктора WPF