SupportsPreviewControlAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, требуется ли конструктору элементов управления предварительный просмотр экземпляра элемента управления во время разработки. Этот класс не может быть унаследован.
public ref class SupportsPreviewControlAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class)]
public sealed class SupportsPreviewControlAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class)>]
type SupportsPreviewControlAttribute = class
inherit Attribute
Public NotInheritable Class SupportsPreviewControlAttribute
Inherits Attribute
- Наследование
- Атрибуты
Примеры
В следующем примере кода показано, как пометить конструктор элементов управления атрибутом SupportsPreviewControlAttribute . В примере кода наследуется ASP.NET серверный элемент управления из Label класса и связывается ASP.NET серверный элемент управления с реализацией пользовательского конструктора элементов управления. Объявление класса конструктора элементов управления помечается атрибутом, равным SupportsPreviewControltrue. Конструктор элементов управления переопределяет метод и заключает GetDesignTimeHtml HTML-код времени разработки для элемента управления в курсивные теги.
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;
using System.Reflection;
namespace ControlDesignerSamples.CS
{
// Define a simple designer associated with a
// simple text web control.
// Mark the designer with the SupportsPreviewControlAttribute set
// to true. This means the base.UsePreviewControl returns true,
// and base.ViewControl returns a temporary preview copy of the control.
[SupportsPreviewControl(true)]
public class SimpleTextControlDesigner : TextControlDesigner
{
// Override the base GetDesignTimeHtml method to display
// the design time text in italics.
public override string GetDesignTimeHtml()
{
string html = String.Empty;
try
{
// Initialize the return string to the default
// design time html of the base TextControlDesigner.
html = base.GetDesignTimeHtml();
// Get the ViewControl for the associated control.
Label ctrl = (Label)ViewControl;
ctrl.Style.Add(HtmlTextWriterStyle.FontStyle, "Italic");
html = base.GetDesignTimeHtml();
}
catch (System.Exception e)
{
if (String.IsNullOrEmpty(html))
{
html = GetErrorDesignTimeHtml(e);
}
}
return html;
}
}
// Derive a simple Web control from Label to render a text string.
// Associate this control with the SimpleTextControlDesigner.
[DesignerAttribute("ControlDesignerSamples.CS.SimpleTextControlDesigner"),
ToolboxData("<{0}:MyLabelControl Runat=\"Server\"><{0}:MyLabelControl>")]
public class MyLabelControl : Label
{
// Use the Label control implementation, but associate
// the derived class with the custom control designer.
}
}
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.Design.WebControls
Imports System.Web.UI.WebControls
Imports System.Reflection
Namespace ControlDesignerSamples.VB
' Derive a simple Web control from Label to render a text string.
' Associate this control with the SimpleTextControlDesigner.
<DesignerAttribute("ControlDesignerSamples.CS.SimpleTextControlDesigner"), _
ToolboxData("<{0}:MyLabelControl Runat=""Server""><{0}:MyLabelControl>")> _
Public Class MyLabelControl
Inherits Label
' Use the Label control implementation, but associate
' the derived class with the custom control designer.
End Class
' Mark the designer with the SupportsPreviewControlAttribute set
' to true. This means the base.UsePreviewControl returns true,
' and base.ViewControl returns a temporary preview copy of the control.
<SupportsPreviewControl(True)> _
Public Class SimpleTextControlDesigner
Inherits TextControlDesigner
' Override the base GetDesignTimeHtml method to display
' the design time text in italics.
Public Overrides Function GetDesignTimeHtml() As String
Dim html As String = String.Empty
Try
' Get the ViewControl for the associated control.
Dim ctrl As Label = CType(ViewControl, Label)
' Set the default text, if necessary
If ctrl.Text.Length = 0 Then
ctrl.Text = "Sample Text"
End If
' Set the style to italic
ctrl.Style.Add(HtmlTextWriterStyle.FontStyle, "italic")
' Let the base class create the HTML markup
html = MyBase.GetDesignTimeHtml()
Catch ex As Exception
If String.IsNullOrEmpty(html) Then
' Display the exception message
html = GetErrorDesignTimeHtml(ex)
End If
End Try
Return html
End Function
End Class
End Namespace
Комментарии
SupportsPreviewControlAttribute Примените атрибут к классу конструктора элементов управления, чтобы указать тип элемента управления предварительной версии, поддерживаемый конструктором элементов управления. Этот атрибут используется для изменения элемента управления предварительной версии для отрисовки во время разработки, не затрагивая фактически сохраненный экземпляр связанного элемента управления.
Как правило, указывается SupportsPreviewControlAttribute при объявлении пользовательского класса конструктора, производного от ControlDesigner класса. Значение свойства атрибута SupportsPreviewControl определяет поведение элементов SupportsPreviewControlAttributeUsePreviewControlViewControl базового ControlDesigner класса.
SupportsPreviewControl Задайте свойство, чтобы true указать, что конструктор использует временную копию связанного элемента управления для создания HTML во время разработки. Изменения во временном элементе управления не сохраняются.
SupportsPreviewControl Задайте для свойства false значение, указывающее, что конструктор возвращает экземпляр элемента управления, в частности Component свойство из ViewControl метода. Изменения объекта элемента управления сохраняются.
Например, CalendarDesigner класс помечается набором SupportsPreviewControlAttributetrue. Конструктор использует элемент управления предварительной версии с задачей автоматического форматирования стилей, которая позволяет пользователю просматривать различные стили автоформата, которые можно применить к календарю. Так как пользователь выбирает различные стили автоформата в пользовательском интерфейсе, выбранная схема стиля применяется к элементу управления предварительного просмотра. Применение нового стиля к элементу управления предварительной Calendar версии не изменяет схему, применяемую к экземпляру элемента управления в конструкторе.
SupportsPreviewControlAttribute Если параметр не указан в объявлении конструктора элементов управления, ControlDesigner поведение эквивалентно указанию SupportsPreviewControl как false.
Замечание
Классы конструктора, производные ControlDesigner от класса, могут переопределять UsePreviewControl элементы и ViewControl элементы и игнорировать SupportsPreviewControlAttribute атрибут. Сведения о ожидаемом поведении ViewControl и UsePreviewControlсм. в справочной документации для производного класса конструктора элементов управления.
Общие сведения об использовании атрибутов см. в разделе "Обзор атрибутов " и "Атрибуты". Дополнительные сведения об атрибутах времени разработки см. в разделе "Атрибуты" и Design-Time "Поддержка".
Конструкторы
| Имя | Описание |
|---|---|
| SupportsPreviewControlAttribute(Boolean) |
Инициализирует новый экземпляр SupportsPreviewControlAttribute класса и задает начальное значение SupportsPreviewControl свойства. |
Поля
| Имя | Описание |
|---|---|
| Default |
Возвращает экземпляр класса, заданного SupportsPreviewControlAttribute значением предварительного просмотра по умолчанию. Это поле доступно только для чтения. |
Свойства
| Имя | Описание |
|---|---|
| SupportsPreviewControl |
Возвращает значение, указывающее, требуется ли конструктор элементов управления временным предварительным просмотром во время разработки. |
| TypeId |
При реализации в производном классе получает уникальный идентификатор для этого Attribute. (Унаследовано от Attribute) |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, представляет ли указанный объект тот же параметр атрибута предварительного SupportsPreviewControlAttribute просмотра, что и текущий экземпляр класса. |
| GetHashCode() |
Возвращает хэш-код для этого экземпляра SupportsPreviewControlAttribute класса. |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| IsDefaultAttribute() |
Указывает, задан ли текущий экземпляр класса значением атрибута предварительного SupportsPreviewControlAttribute просмотра по умолчанию. |
| Match(Object) |
При переопределении в производном классе возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Извлекает сведения о типе объекта, который можно использовать для получения сведений о типе для интерфейса. (Унаследовано от Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к свойствам и методам, предоставляемым объектом. (Унаследовано от Attribute) |