IVsColorableItem 介面
提供預設的字型、 字型樣式和自訂的可設定色彩項目的項目名稱資訊。
命名空間: Microsoft.VisualStudio.TextManager.Interop
組件: Microsoft.VisualStudio.TextManager.Interop (在 Microsoft.VisualStudio.TextManager.Interop.dll 中)
語法
'宣告
<InterfaceTypeAttribute()> _
<GuidAttribute("56694A40-78D0-45DD-AB15-681BC207579C")> _
Public Interface IVsColorableItem
[InterfaceTypeAttribute()]
[GuidAttribute("56694A40-78D0-45DD-AB15-681BC207579C")]
public interface IVsColorableItem
[InterfaceTypeAttribute()]
[GuidAttribute(L"56694A40-78D0-45DD-AB15-681BC207579C")]
public interface class IVsColorableItem
[<InterfaceTypeAttribute()>]
[<GuidAttribute("56694A40-78D0-45DD-AB15-681BC207579C")>]
type IVsColorableItem = interface end
public interface IVsColorableItem
IVsColorableItem 類型會公開下列成員。
方法
名稱 | 描述 | |
---|---|---|
GetDefaultColors | 定義自訂的可設定色彩項目預設背景和前景色彩。 | |
GetDefaultFontFlags | 傳回的預設字型旗標,為自訂的可設定色彩項目。 | |
GetDisplayName | 取得自訂的可設定色彩項目的顯示名稱。 |
回頁首
備註
應該當地語系化自訂的可設定色彩項目的顯示名稱。
這個介面所傳回的色彩值會是預先定義的色彩。 高彩 (24 位元) 值,可能傳回透過IVsHiColorItem介面。 請參閱IVsHiColorItem介面的範例。
描述如何實作自訂的可設定色彩項目自訂可設定色彩的項目。
實作者注意事項
實作這個介面來提供自訂的可設定色彩項目的語言服務傳回的字型和名稱資訊。
如果您想要支援高彩值時,您必須實作IVsHiColorItem上相同的物件實作的介面IVsColorableItem介面。
呼叫者注意事項
IVsColorableItem物件可由呼叫GetColorableItem上的方法IVsProvideColorableItems介面。
範例
本範例為語言服務。
using Microsoft.VisualStudio.TextManager.Interop;
namespace MyNamespace
{
internal class MyColorItem : IVsColorableItem
{
//==========================================================
// Private fields.
private COLORINDEX foreColor;
private COLORINDEX backColor;
private FONTFLAGS fontFlags;
private string name;
private string displayName;
//==========================================================
// Public constructor.
public MyColorItem(string name,
string displayName,
COLORINDEX foreColor,
COLORINDEX backColor,
FONTFLAGS fontFlags)
{
this.name = name;
this.displayName = displayName;
this.foreColor = foreColor;
this.backColor = backColor;
this.fontFlags = fontFlags;
}
//==========================================================
// IVsColorableItem methods.
#region IVsColorableItem Members
int IVsColorableItem.GetDefaultColors(COLORINDEX[] piForeground,
COLORINDEX[] piBackground)
{
int retval = VSConstants.E_POINTER;
if (piForeground != null)
{
piForeground[0] = this.foreColor;
retval = VSConstants.S_OK;
}
if (piBackground != null)
{
piBackground[0] = this.backColor;
}
return retval;
}
int IVsColorableItem.GetDefaultFontFlags(out uint pdwFontFlags)
{
pdwFontFlags = (uint)this.fontFlags;
return VSConstants.S_OK;
}
int IVsColorableItem.GetDisplayName(out string pbstrName)
{
pbstrName = this.displayName;
return VSConstants.S_OK;
}
#endregion
}
//==============================================================
// Example of how to instantiate the MyColorItem class.
public class MyLanguageService
{
private ColorableItem[] colorableItemsList;
public MyLanguageService()
{
colorableItemsList = {
new MyColorableItem("MyLanguage- Text",
"MyLanguage- Text",
COLORINDEX.CI_SYSPLAINTEXT_FG,
COLORINDEX.CI_SYSPLAINTEXT_BK,
FONTFLAGS.FF_BOLD),
new MyColorableItem("MyLanguage- Keyword",
"MyLanguage- Keyword",
COLORINDEX.CI_MAROON,
COLORINDEX.CI_SYSPLAINTEXT_BK,
FONTFLAGS.FF_BOLD),
new MyColorableItem("MyLanguage- Operator",
"MyLanguage- Operator",
COLORINDEX.CI_DARKBLUE,
COLORINDEX.CI_BLUE,
FONTFLAGS.FF_PLAIN)
};
}
}
}
請參閱
參考
Microsoft.VisualStudio.TextManager.Interop 命名空間