Compartir a través de


IVsColorableItem (Interfaz)

Proporciona colores de fuente predeterminados, estilo de fuente, y la información de nombre de elemento para un elemento coloreable personalizado.

Espacio de nombres:  Microsoft.VisualStudio.TextManager.Interop
Ensamblado:  Microsoft.VisualStudio.TextManager.Interop (en Microsoft.VisualStudio.TextManager.Interop.dll)

Sintaxis

'Declaración
<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

El tipo IVsColorableItem expone los siguientes miembros.

Métodos

  Nombre Descripción
Método público GetDefaultColors Define los colores de fondo y de primer plano predeterminados para un elemento coloreable personalizado.
Método público GetDefaultFontFlags Devuelve marcas de fuente predeterminados para el elemento coloreable personalizado.
Método público GetDisplayName Obtiene el nombre para mostrar del elemento coloreable personalizado.

Arriba

Comentarios

El nombre para mostrar del elemento coloreable personalizado debe localizar.

los valores de color devueltos de esta interfaz son colores predefinidos. Los valores de color de gran densidad (24 bits) se pueden devolver a través de la interfaz de IVsHiColorItem . Vea la interfaz de IVsHiColorItem para obtener un ejemplo.

Cómo implementar elementos colorear personalizados se describe en Elementos colorear personalizados.

Notas para los implementadores

Implemente esta interfaz para proporcionar la fuente y llamar a la información sobre un elemento coloreable personalizado que se devuelve de un servicio de lenguaje.

Si desea admitir valores de color de gran densidad, debe implementar la interfaz de IVsHiColorItem en el mismo objeto que implementa la interfaz de IVsColorableItem .

Notas para los llamadores

Un objeto de IVsColorableItem se puede obtener llamando al método GetColorableItem en la interfaz de IVsProvideColorableItems .

Ejemplos

Este ejemplo es de un servicio de lenguaje.

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)
            };
        }
    }
}

Vea también

Referencia

Microsoft.VisualStudio.TextManager.Interop (Espacio de nombres)

Otros recursos

Elementos colorear personalizados