Páginas de propriedade

Os usuários podem exibir e alterar propriedades dependentes e independentes da configuração do projeto usando páginas de propriedades. Um botão Páginas de Propriedades é habilitado na janela Propriedades ou na barra de ferramentas Gerenciador de Soluções para objetos que fornecem uma exibição de página de propriedades do objeto selecionado. As páginas de propriedades são criadas pelo ambiente e estão disponíveis para soluções e projetos. No entanto, eles também podem ser disponibilizados para itens de projeto que usam propriedades dependentes da configuração. Esse recurso pode ser usado quando os arquivos dentro de um projeto exigem configurações de alternância de compilador diferentes para compilar corretamente.

Usando páginas de propriedades

Se uma página de propriedades já for exibida e a seleção for alterada (por exemplo, de uma solução para um projeto), as informações exibidas nas páginas serão alteradas para exibir as propriedades da nova seleção. Se não houver propriedades no objeto que oferecem suporte a páginas de propriedades, a página de propriedades estará vazia.

Se vários objetos forem selecionados, a página de propriedades exibirá a interseção de propriedades de todos os itens selecionados. Se o item selecionado não contiver propriedades dependentes da configuração e o botão Páginas de Propriedades na barra de ferramentas do Gerenciador de Soluções for clicado, o foco mudará para a janela Propriedades. Para obter mais informações relacionadas à janela Propriedades e à seleção, consulte Estendendo propriedades.

Se as propriedades forem exibidas para vários objetos e você alterar um valor em uma página de propriedades, todos os valores dos objetos serão definidos com o novo valor, mesmo que tenham sido inicialmente diferentes e a página esteja em branco quando as propriedades de um objeto individual forem exibidas.

Há dois tipos gerais de ProjectProperty Pages caixas de diálogo disponíveis no Visual Studio. No primeiro, para projetos do Visual Basic, por exemplo, as páginas de propriedades são exibidas usando um formato de campo, conforme mostrado na captura de tela a seguir. Na segunda, mostrada posteriormente nesta seção, a página de propriedades hospeda uma grade de propriedades semelhante à encontrada na Janela Propriedades.

Visual Basic Property Pages Caixa de diálogo Páginas de Propriedades do Projeto com formato de campo e estrutura de árvore

A estrutura de árvore na caixa de diálogo Páginas de propriedades não é criada usando IVsHierarchyo . O ambiente, com base no nome do nível passado a ele pelas ISpecifyPropertyPages interfaces e IVsPropertyPage , o constrói.

Há apenas duas categorias de nível superior disponíveis nas páginas de propriedades do Visual Studio:

  • Propriedades comuns, que exibe informações independentes de configuração para o(s) objeto(s) selecionado(s). Como resultado, quando uma das subcategorias Propriedades comuns é selecionada, as opções Configuração, Plataforma e Gerenciador de Configurações na parte superior da caixa de diálogo não estão disponíveis.

  • Propriedades de Configuração, que contém informações dependentes da configuração relacionadas aos parâmetros de Depuração, Otimização e Criação para a solução ou projeto.

    Não é possível criar categorias de nível superior adicionais, mas você pode optar por não exibir uma ou outra em sua implementação do IVsPropertyPage. Se, por exemplo, você não tiver nenhuma propriedade independente de configuração para exibir para um objeto, poderá optar por não exibir a categoria Propriedades comuns. Você exibe as propriedades Common se ISpecifyPropertyPages for implementado a partir do objeto de navegação do item e das propriedades Configuration ao implementar ISpecifyPropertyPages no objeto de configuração (o objeto que implementa IVsCfgIVsProjectCfg, e interfaces relacionadas).

    Cada categoria exibida em uma categoria de nível superior representa uma página de propriedades separada. As entradas de categoria e subcategoria disponíveis na caixa de diálogo são determinadas pela implementação de ISpecifyPropertyPages e IVsPropertyPage.

    IDispatch objetos para itens no contêiner de seleção que têm propriedades a serem exibidas em páginas de propriedades implementam ISpecifyPropertyPages para enumerar uma lista de IDs de classe. As IDs de classe são passadas como variáveis para e são usadas para ISpecifyPropertyPages instanciar as páginas de propriedades. A lista de IDs de classe também é passada para IVsPropertyPage criar a estrutura de árvore à esquerda da caixa de diálogo. As páginas de propriedades passam informações de volta para o objeto que implementa IDispatchISpecifyPropertyPages e preenche as informações de cada página.

    As propriedades do objeto de navegação são recuperadas usando IDispatch para cada objeto no contêiner de seleção.

    A implementação Help::DisplayTopicFromF1Keyword no VSPackage fornece a funcionalidade para o botão Ajuda.

    Para obter mais informações, consulte IDispatch e ISpecifyPropertyPagesna biblioteca MSDN.

    O segundo tipo de páginas de propriedades exibidas nos exemplos hospeda um formulário da grade de propriedades, conforme mostrado na captura de tela a seguir.

    VC Property Pages Caixa de diálogo Páginas de Propriedades com grade de propriedades

    As interfaces IVSMDPropertyBrowser e (declaradas em vsmanaged.h) são usadas para criar e IVSMDPropertyGrid preencher a grade de propriedades dentro de uma caixa de diálogo ou janela.

    A arquitetura dos projetos mudou consideravelmente em relação às versões anteriores do Visual Studio. Em particular, a noção de qual projeto está ativo mudou. No Visual Studio, não há nenhum conceito de um projeto ativo. Em ambientes de desenvolvimento anteriores, o projeto ativo era o projeto que os comandos de compilação e implantação usavam como padrão, independentemente do contexto. Agora, a solução controla e arbitra quais comandos de compilação e implantação se aplicam a quais projetos.

    O que antes era um projeto ativo agora é capturado de três maneiras diferentes:

  • O projeto Startup

    Você pode especificar um projeto ou projetos na página de propriedades da solução que serão iniciados quando o usuário pressionar F5 ou selecionar Executar no menu Compilar. Isso funciona de maneira semelhante ao projeto ativo antigo no sentido de que seu nome é exibido no Gerenciador de Soluções com fonte em negrito.

    Você pode recuperar o projeto de inicialização como uma propriedade no modelo de automação chamando DTE.Solution.SolutionBuild.StartupProjects. Em um VSPackage, você chama o get_StartupProject ou os get_StartupProject métodos. IVsSolutionBuildManager está disponível como um serviço por QueryService SID_SVsSolutionBuildManager. Para obter mais informações, consulte Project Configuration Object and Solution Configuration.

  • Configuração de compilação de solução ativa

    O Visual Studio tem uma configuração de solução ativa, disponível no modelo de automação implementando DTE.Solution.SolutionBuild.ActiveConfigurationo . Uma configuração de solução é uma coleção que contém uma configuração de projeto para cada projeto na solução (cada projeto pode ter várias configurações, em várias plataformas, com nomes diferentes). Para obter mais informações relacionadas às páginas de propriedades da solução, consulte Configuração da solução.

  • Projeto selecionado no momento

    Implemente o método para recuperar a hierarquia do projeto e o GetCurrentSelection item de projeto ou itens selecionados. A partir do DTE, você usaria os SelectedItems.SelectedItem.Project métodos e SelectedItems.SelectedItem.ProjectItem . Há código de exemplo sob esses títulos nos documentos principais do Visual Studio.

Confira também