Condividi tramite


Interfaccia IVsColorableItem

Fornisce i colori del tipo di carattere predefinito, lo stile del tipo di carattere e informazioni sul nome dell'elemento per un elemento il colore personalizzato.

Spazio dei nomi:  Microsoft.VisualStudio.TextManager.Interop
Assembly:  Microsoft.VisualStudio.TextManager.Interop (in Microsoft.VisualStudio.TextManager.Interop.dll)

Sintassi

'Dichiarazione
<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

Il tipo IVsColorableItem espone i seguenti membri.

Metodi

  Nome Descrizione
Metodo pubblico GetDefaultColors Definisce i colori di sfondo e di primo piano predefiniti per un elemento il colore personalizzato.
Metodo pubblico GetDefaultFontFlags Restituisce i flag predefiniti di carattere per il colore personalizzato.
Metodo pubblico GetDisplayName Ottiene il nome visualizzato dell'elemento il colore personalizzato.

In alto

Note

Il nome visualizzato per il colore personalizzato deve essere localizzato.

I valori di colore restituiti da questa interfaccia sono colori predefiniti. I valori di colore attivato (24 bit) possono essere restituiti da IVsHiColorItem interfaccia. vedere IVsHiColorItem interfaccia per un esempio.

Come distribuire gli elementi colorabili personalizzati è descritto in l elementi colorabili personalizzati.

Note per gli implementatori

Implementare questa interfaccia per definire il tipo di carattere e denominare informazioni su un elemento il colore personalizzato restituito da un servizio di linguaggio.

Se si desidera supportare i valori di colore attivato, è necessario implementare IVsHiColorItem collegare lo stesso oggetto che implementa IVsColorableItem interfaccia.

Note per i chiamanti

GetColorableItem l'oggetto può essere ottenuto chiamando IVsProvideColorableItems metodo su di IVsColorableItem interfaccia.

Esempi

In questo esempio ha origine da un servizio di linguaggio.

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

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.TextManager.Interop

Altre risorse

elementi colorabili personalizzati