DesignSurface 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为设计组件提供一个用户界面。
public ref class DesignSurface : IDisposable, IServiceProvider
public class DesignSurface : IDisposable, IServiceProvider
[System.Security.SecurityCritical]
public class DesignSurface : IDisposable, IServiceProvider
type DesignSurface = class
interface IDisposable
interface IServiceProvider
[<System.Security.SecurityCritical>]
type DesignSurface = class
interface IDisposable
interface IServiceProvider
Public Class DesignSurface
Implements IDisposable, IServiceProvider
- 继承
-
DesignSurface
- 属性
- 实现
注解
类 DesignSurface 实现用户视为设计器的内容。 DesignSurface 是用户操作以更改设计时功能的用户界面。 DesignSurface 提供完全独立的设计图面。
类 DesignSurface 可以用作独立设计器,也可以与 DesignSurfaceManager 类结合使用,为托管多个 DesignSurface 对象的应用程序提供通用实现。
类 DesignSurface 可以单独使用,或者用户可以从中派生一个新类并增强行为。
类 DesignSurface 自动提供多个设计时服务。 类 DesignSurface 在其构造函数中添加其所有服务。 这些服务中的大多数都可以通过在受保护的 ServiceContainer 属性中替换它们来重写。 若要替换服务,请重写构造函数、调用基,并通过受保护的 ServiceContainer 属性进行任何更改。 在释放设计图面时,将释放添加到服务容器和实现 IDisposable 的所有服务。 下表显示了类提供的默认可替换服务 DesignSurface 集。
服务 | 说明 |
---|---|
IExtenderProviderService | 允许不属于容器组件集合的对象提供其自己的扩展程序提供程序。 |
IExtenderListService | 用于 TypeDescriptor 获取扩展程序提供程序的列表。 使用此服务,扩展程序提供程序可以位于容器外部。 |
ITypeDescriptorFilterService | 提供设计器元数据挂钩。 这是元数据筛选的主要接口。 |
ISelectionService | 提供一种在设计器中选择组件的方法。 |
IReferenceService | 提供一种获取对象名称的方法,即使这些对象未进行站点化也是如此。 |
DesignSurface | 将设计图面本身作为服务提供。 |
DesignerOptionService | 提供用于获取和设置设计器选项值的基类。 |
下表显示了默认情况下提供的不可替换服务。
服务 | 说明 |
---|---|
IComponentChangeService | 在对组件进行更改时引发事件。 |
IDesignerHost | 控制对类型、服务和事务的访问。 设计器的主接口。 |
IContainer | 拥有正在设计的组件集。 每个设计器都有一个 IContainer 拥有组件的 。 |
IServiceContainer | 派生自 IServiceProvider ,提供一种从设计器中添加和删除服务的方法。 |
除了这些服务, DesignSurface 类还提供通过组件的站点提供的单个服务。 此服务对于每个组件都是唯一的。 下表显示了无法替换的服务。
服务 | 说明 |
---|---|
IDictionaryService | 键/值对的泛型字典,可用于存储有关组件的任意数据。 |
INestedContainer | 一个容器,使组件能够将其他子组件添加到设计器。 这些组件将是设计图面的一部分,但不参与序列化。 如果要设计一个控件,该控件能够在设计器中公开自身的区域,但不希望该区域参与序列化,这非常有用。 |
除了 ISite,站点还实现以下接口。
注意
检查是否存在这些接口,而不是使用不分青红皂白的强制转换,因为其他站点实现可能无法实现它们。
服务 | 说明 |
---|---|
IServiceContainer | 提供一种访问特定于站点的服务的容器的方法。 例如, IDictionaryService 是特定于站点的服务。 使用此服务,可以添加其他特定于站点的服务。 |
构造函数
DesignSurface() |
初始化 DesignSurface 类的新实例。 |
DesignSurface(IServiceProvider) |
初始化 DesignSurface 类的新实例。 |
DesignSurface(IServiceProvider, Type) |
初始化 DesignSurface 类的新实例。 |
DesignSurface(Type) |
初始化 DesignSurface 类的新实例。 |
属性
ComponentContainer |
获取设计图面中的 IContainer 实现。 |
DtelLoading |
获取一个值,该值指示是否正在加载“设计时错误列表”。 |
IsLoaded |
获取一个值,该值指示当前是否正在加载设计图面。 |
LoadErrors |
返回加载错误的集合或空集合。 |
ServiceContainer |
获取服务容器。 |
View |
获取根设计器的视图。 |
方法
BeginLoad(DesignerLoader) |
使用给定的设计器加载程序开始加载过程。 |
BeginLoad(Type) |
开始加载过程。 |
CreateComponent(Type) |
已过时.
创建组件的实例。 |
CreateDesigner(IComponent, Boolean) |
在将组件添加到容器时创建设计器。 |
CreateInstance(Type) |
创建给定类型的实例。 |
CreateNestedContainer(IComponent) |
创建一个适合嵌套控件或组件的容器。 |
CreateNestedContainer(IComponent, String) |
创建一个适合嵌套控件或组件的容器。 |
Dispose() |
释放由 DesignSurface 占用的资源。 |
Dispose(Boolean) |
释放由 DesignSurface 占用的资源。 |
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
Flush() |
序列化对设计图面的更改。 |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetService(Type) |
从服务容器中获取服务。 |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
OnLoaded(LoadedEventArgs) |
引发 Loaded 事件。 |
OnLoading(EventArgs) |
引发 Loading 事件。 |
OnUnloaded(EventArgs) |
引发 Unloaded 事件。 |
OnUnloading(EventArgs) |
引发 Unloading 事件。 |
OnViewActivate(EventArgs) |
引发 ViewActivated 事件。 |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |
事件
Disposed |
在释放设计图面时发生。 |
Flushed |
调用 Flush() 的 DesignSurface 方法时发生。 |
Loaded |
在设计器加载完成时发生。 |
Loading |
在将要加载设计器时发生。 |
Unloaded |
在设计器完成卸载时发生。 |
Unloading |
在设计器将要卸载时发生。 |
ViewActivated |
在 Activate() 上已调用 IDesignerHost 方法时发生。 |