Compartir a través de


Cómo: Controlar la Ventana de ayuda dinámica

Actualización: noviembre 2007

Visual Studio tiene una ventana Ayuda dinámica que proporciona vínculos a temas de Ayuda relacionados con el contexto de un usuario. Por ejemplo, si comienza a trabajar en el editor de código, en la ventana Ayuda dinámica se mostrará un tema en el que se explica el uso del editor de código. Esto se realiza comparando las palabras clave relacionadas con el contexto actual con una lista de palabras clave asociadas a los temas de Ayuda.

La colección ContextAttributes y el objeto ContextAttribute permiten incluir en la lista la colección de palabras clave que se aplican a una ventana especificada en Visual Studio. También permiten agregar y dar prioridad a atributos. Por consiguiente, los clientes de automatización pueden mostrar los temas elegidos en la ventana Ayuda dinámica cuando se selecciona la ventana o uno de sus elementos, por ejemplo, una ficha o un vínculo.

Un objeto ContextAttribute representa el contexto de una ventana o elemento de ventana en particular. ContextAttributes es una colección de todos los objetos ContextAttribute de una ventana. Hay tres tipos de contexto: Filter, Lookup y LookupF1:

Filter

Se agrega un atributo a la colección de contexto. Los atributos son pares nombre/valor que se utilizan para filtrar los temas de F1 y de las palabras clave que se muestran en la ventana Ayuda dinámica, o el tema que se muestra cuando un usuario presiona F1.

Lookup

Se agrega una palabra clave a la colección de contexto. El tema correspondiente a dicha palabra clave se muestra en la ventana Ayuda dinámica. Las palabras clave de consulta proporcionan una lista de temas relacionados que se muestran en la ventana Ayuda dinámica. La lista de temas correspondiente a las palabras clave de la Ayuda dinámica se actualiza cuando el usuario cambia la selección. Las palabras clave de consulta proceden del mismo origen que las palabras clave que se muestran en el índice de un archivo de Ayuda compilado.

LookupF1

El tema correspondiente a esta palabra clave se muestra en la ventana Ayuda dinámica y se utiliza para buscar temas de Ayuda de F1. Las palabras clave de F1 proporcionan un tema de Ayuda cuando se selecciona un elemento de contexto, como una ventana de herramientas, un editor o un cuadro de diálogo modal, y se presiona F1. Los temas de palabras clave de F1 también se incluyen en la lista de la ventana Ayuda dinámica. Se agrega una palabra clave de F1 a la colección de contexto.

Hay tres tipos de atributos de contexto que indican el origen del objeto ContextAttributes:

Global

El contexto global del entorno de desarrollo integrado (IDE).

Alta prioridad

La colección de contexto de Alta prioridad. El atributo de contexto Alta prioridad significa que el vínculo de tema se muestra en la parte superior de su grupo de vínculos en la ventana Ayuda dinámica.

Ventana

Un contexto de ventana.

La colección ContextAttributes está disponible en los objetos siguientes:

ContextAttributes

Afecta a la colección de contexto global, que tiene la menor prioridad para ordenar temas.

ContextAttributes

Afecta a la colección de contexto de una ventana. En el caso de las ventanas de herramientas, los atributos sólo estarán en vigor cuando la ventana esté seleccionada. En el caso de los editores y diseñadores, los atributos estarán en vigor mientras el editor sea la última ventana secundaria MDI activa. Si el valor de la propiedad HighPriorityAttributes es True, los atributos siempre estarán en vigor y tendrán la mayor prioridad.

Después de asociar una palabra clave a una ventana o elemento de ventana, se puede utilizar para mostrar un tema de Ayuda. Mediante el proveedor de ayuda XML, puede mostrar un tema de Ayuda o una dirección URL personalizados. Para obtener más información, busque "El proveedor de ayuda XML y la ayuda dinámica" en el tema de Ayuda de Visual Studio Industry Partner (VSIP) SDK.

Además de controlar el contenido de la ventana Ayuda dinámica, se pueden controlar sus características, como el ancho y el alto. Para obtener más información, vea Cómo: Cambiar las características de las ventanas.

Mediante ContextAttributes y ContextAttribute, se puede:

  • Agregar o eliminar el nombre, valor o tipo de una palabra clave.

  • Obtener el nombre y el valor de una palabra clave.

  • Obtener una lista de atributos de Alta prioridad como una colección ContextAttributes a partir de DTE.ContextAttributes.

Nota:

Los cuadros de diálogo y comandos de menú que aparecen pueden diferir de los descritos en la Ayuda, dependiendo de los valores de configuración o de edición activos. Estos procedimientos se desarrollaron con la Configuración general de desarrollo activa. Para cambiar la configuración, elija la opción Importar y exportarconfiguraciones del menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.

Ejemplo

El siguiente ejemplo de complemento muestra cómo hacer referencia y utilizar los diversos miembros del modelo de automatización de Ayuda dinámica. Este ejemplo incluye la lista de nombres y número de palabras clave asociados al Explorador de soluciones. También agrega una nueva palabra clave de F1 al explorador y, a continuación, la quita. Para obtener más información sobre cómo ejecutar el ejemplo, como complemento o como macro de Visual Studio, vea Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización.

Public Sub OnConnection(ByVal application As Object, ByVal _
connectMode As ext_ConnectMode, ByVal addInInst As Object, _
ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    _applicationObject = CType(application, DTE2)
    _addInInstance = CType(addInInst, AddIn)
    ' Pass the applicationObject member variable to the code example.
    CATest(_applicationObject)
End Sub

Sub CATest(ByVal dte As DTE2)
    ' Get a reference to Solution Explorer.
    Dim SolnEx As Window = _applicationObject.Windows.Item(Constants. _
    vsWindowKindSolutionExplorer)
    Dim CA As ContextAttribute

    ' List the current attributes associated with Solution Explorer.
    ListAttr(SolnEx, CA)

    ' Associate a new F1 keyword to Solution Explorer.
    SolnEx.ContextAttributes.Add("ANewKeyword", "900", _
    vsContextAttributeType.vsContextAttributeLookupF1)
    ListAttr(SolnEx, CA)

    ' Delete the new F1 keyword from Solution Explorer.
    SolnEx.ContextAttributes.Item(3).Remove()
    ListAttr(SolnEx, CA)
End Sub

Sub ListAttr(ByVal SolnEx As Object, ByVal CA As ContextAttribute)
    ' Support function for CATest(). Lists the current attributes 
    ' associated with Solution Explorer.
    Dim msg As String
    msg = ""

    MsgBox("Number of context attributes in Solution Explorer: "  _
    & SolnEx.ContextAttributes.Count)
    For Each CA In SolnEx.ContextAttributes
        msg = msg & CA.Name & Chr(13)
    Next
    MsgBox(msg)
    msg = ""
End Sub
public void OnConnection(object application,
 Extensibility.ext_ConnectMode connectMode, object addInInst, ref
 System.Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    //  Pass the applicationObject member variable to the code example.
    CATest(_applicationObject); 
}

public void CATest( DTE2 dte ) 
{ 
    // Add-in code.
    // Get a reference to Solution Explorer.
    Window SolnEx = dte.Windows.Item
( Constants.vsWindowKindSolutionExplorer ); 
    ContextAttribute CA = null; 

    // List the current attributes associated with Solution Explorer.
    ListAttr( SolnEx, CA ); 

    // Associate a new F1 keyword to Solution Explorer.
    SolnEx.ContextAttributes.Add( "ANewKeyword",
 System.Convert.ToString(900),
 vsContextAttributeType.vsContextAttributeLookupF1 ); 
    ListAttr( SolnEx, CA ); 

    // Delete the new F1 keyword from Solution Explorer.
    SolnEx.ContextAttributes.Item( 2 ).Remove(); 
    ListAttr( SolnEx, CA ); 
} 

public void ListAttr( EnvDTE.Window SolnEx, ContextAttribute CA ) 
{ 
    // Support function for CATest(). Lists the current attributes 
    // associated with Solution Explorer.
    string msg = null; 

    MessageBox.Show
( "Number of context attributes in Solution Explorer: " 
+ SolnEx.ContextAttributes.Count); 
    foreach ( EnvDTE.ContextAttribute temp in 
SolnEx.ContextAttributes ) 
    { 
        CA = temp; 
        msg = msg + CA.Name + "\n"; 
    }
    MessageBox.Show( msg); 
    msg = ""; 
}

Vea también

Tareas

Cómo: Cambiar las características de las ventanas

Cómo: Crear un complemento

Tutorial: Crear un asistente

Conceptos

Gráfico del modelo de objetos de automatización

Otros recursos

Crear y controlar las ventanas del entorno

Crear complementos y asistentes

Referencia de automatización y extensibilidad