Поделиться через


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) могут возвращаться через bit IVsHiColorItem интерфейс. Эти IVsHiColorItem интерфейс для примера.

Как реализовать пользовательские элементы цветного описанных в Пользовательские элементы Colorable.

Примечания для разработчиков

Реализуйте этот интерфейс для обеспечения шрифт и назвать сведения о пользовательском цветного элемента, который возвращается из языковой службы.

Если требуется поддерживать значения высокого цвета, необходимо реализовать IVsHiColorItem интерфейс для одного и того же объекта, реализующего IVsColorableItem интерфейс.

Примечания к вызывающим объектам

GetColorableItem объект может быть получен путем вызова IVsProvideColorableItems метод IVsColorableItem интерфейс.

Примеры

В этом примере от языковой службы.

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 - пространство имен

Другие ресурсы

Пользовательские элементы Colorable