VSPackage 中提供其文本的字体和颜色的控件。 Visual Studio 集成开发环境 (IDE)通过自定义类别和显示项目。
自定义类别和显示项。 字体和颜色 属性页。 若要打开 字体和颜色 属性页,在 工具 菜单上,单击 选项。 外接 环境 然后单击 字体和颜色。
在使用此结构时, Vspackage 必须实现 IVsFontAndColorDefaultsProvider 接口及其关联的接口。
大体上,此机制可用于修改包含它们的所有现有 显示项目 和 类 。 但是,不应使用它来更改 文本编辑器类 或其 显示项目。 有关更多信息,请参见 字体和颜色概述。
若要实现自定义 类 或 显示项目, VSPackage 必须:
创建或标识在注册表的类别。
字体和颜色 属性页的 IDE 的实现将使用此信息为支持特定类别的服务正确查询。
创建或标识组 (可选) 注册表中。
定义组可能很有用,表示两个或多个类别联合。 如果组定义, IDE 在组中自动合并子类别并将显示项目。
实现 IDE 支持。
处理字体和颜色更改。
有关信息,请参见访问存储的字体和颜色设置。
创建或标识类别
构造一种特殊类型的类别注册表项下 [HKLM \ \SOFTWARE\Microsoft \Visual StudioVisual Studio version\FontAndColors \<Category>]
Category 是类的非本地化名称。
填充两个值的注册表:
名称
类型
数据
说明
类别
REG_SZ
GUID
创建的 GUID 标识类别。
Package
REG_SZ
GUID
支持类别 VSPackage 服务的 GUID。
在注册表中指定的服务必须为相应的类提供 IVsFontAndColorDefaults 的实现。
创建或标识组
构造一种特殊类型的类别注册表项下 [HKLM \ \SOFTWARE\Microsoft \Visual StudioVisual Studio version\FontAndColors \group]
group 是组的非本地化名称。
填充两个值的注册表:
名称
类型
数据
说明
类别
REG_SZ
GUID
创建的 GUID 标识组。
Package
REG_SZ
GUID
支持类别服务的 GUID。
在注册表中指定的服务必须为相应的团队提供 T:Microsoft.VisualStudio.Shell.Interop.IVsFontAndColorGroup 的实现。
若要实现 IDE 支持
实现 GetObject,返回 IVsFontAndColorDefaults 接口或接口 T:Microsoft.VisualStudio.Shell.Interop.IVsFontAndColorGroup 对于每 类 或所提供的组 GUID 的 IDE。
对于每 类 它支持, VSPackage 实现 IVsFontAndColorDefaults 接口的实例。
通过 IVsFontAndColorDefaults 执行的方法必须提供 IDE 的:
在列表 **类别。**的 显示项目
可本地化的名称 显示项目。
类的每个成员显示的信息。
备注
每 类 必须至少包含一 显示项目。
IDE 使用 T:Microsoft.VisualStudio.Shell.Interop.IVsFontAndColorGroup 接口定义若干类别联合。
其实现提供 IDE 的:
包括一组给定 类 的列表。
对组中的 IVsFontAndColorDefaults 实例的访问权限支持每 类 。
可本地化的组名称。
更新 IDE:
有关 字体和颜色 设置的 IDE 信息缓存。 因此,在 IDE 字体和颜色 配置的所有修改后,确保可行,缓存最新。
更新缓存通过 IVsFontAndColorCacheManager 接口在选定的项执行,并且可以全局执行或。
处理字体和颜色更改
适当地支持 VSPackage 显示的文本着色,支持 VSPackage 的着色服务必须响应通过 字体和颜色 属性页进行的用户启动的更改。 VSPackage 执行此操作:
指示 IDE 生成的事件通过实现 IVsFontAndColorEvents 接口。
在 字体和颜色 页的用户修改后, IDE 调用适当的方法。 例如,在中,如果新的选定字体,它调用 OnFontChanged 方法。
- 或 -
轮询更改的 IDE。
这可以通过系统实现的 IVsFontAndColorStorage 接口实现。 虽然主支持持久性, GetItem 方法可用于获取 显示项目的字体和颜色信息。 有关更多信息,请参见 访问存储的字体和颜色设置。
备注
若要确保轮询获得的结果是正确的,使用 IVsFontAndColorCacheManager 界面确定哪些可能很有用的缓存是否刷新,并在调用 IVsFontAndColorStorage 接口的检索方法之前需要的。
请参见
任务
参考
IVsFontAndColorDefaultsProvider