SupportsPreviewControlAttribute 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指示在设计时控制设计器是否需要控件的预览实例。 此类不能被继承。
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 属性标记控件设计器。 该代码示例从Label类派生 ASP.NET 服务器控件,并将 ASP.NET 服务器控件与自定义控件设计器实现相关联。 控件设计器类声明标记为属性 SupportsPreviewControl
设置为 true
. 控件设计器重写该方法, 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 自定义设计器类时。 属性的值SupportsPreviewControlSupportsPreviewControlAttribute确定基ControlDesigner类中成员的行为UsePreviewControlViewControl。
将 SupportsPreviewControl 属性设置为 true
指示设计器使用关联控件的临时副本生成设计时 HTML。 临时控件的更改不会持久保存。
将SupportsPreviewControl属性设置为false
指示设计器从ViewControl方法返回控件实例(特别是Component属性)。 对控件对象的更改将保留。
例如,类 CalendarDesigner 被标记为 SupportsPreviewControlAttribute “设置为 true
” 。 设计器使用带有自动样式格式设置任务的预览控件,该任务允许用户预览可应用于日历的各种自动套用样式。 当用户在用户界面中选择不同的自动格式样式时,所选样式方案将应用于预览控件。 将新样式应用于预览控件不会更改应用于设计器中控件实例 Calendar 的方案。
如果未在控件设计器声明中指定, SupportsPreviewControlAttribute 则 ControlDesigner 行为等效于指定 SupportsPreviewControl as 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) |