Partilhar via


Definindo uma imagem de plano de fundo em um diagrama

No SDK de Visualização e Modelagem do Visual Studio, você pode configurar a imagem de plano de fundo para um designer gerado usando código personalizado.

Configurando a imagem de plano de fundo

Para configurar uma imagem de plano de fundo de um designer gerado

  1. Copie o arquivo de imagem que você deseja usar como plano de fundo do diagrama no diretório Dsl\Resources do projeto atual.

  2. No Gerenciador de Soluções, clique com o botão direito do mouse na pasta Dsl\Resources, aponte para Adicionar e clique em Item Existente.

  3. Na caixa de diálogo Adicionar Item Existente, navegue até a pasta Dsl\Resources.

  4. Na lista Arquivos do tipo, clique em Arquivos de Imagem.

  5. Clique no arquivo de imagem que você copiou no diretório e clique em Adicionar.

  6. Clique com o botão direito do mouse em Dsl e em Propriedades para abrir as propriedades do projeto Dsl.

  7. Na guia Recursos, clique em Este projeto não contém um arquivo de recursos padrão. Clique aqui para criar um.

  8. Adicione o arquivo de imagem ao arquivo de recursos arrastando a imagem do Gerenciador de Soluções para a janela de recursos.

  9. Abra o menu Arquivo e clique na opção para salvar as propriedades do projeto.

  10. Verifique se o arquivo Dsl\Properties\Resources.resx existe e se possui o arquivo Resources.Designer.cs nele.

  11. Se Resources.Designer.cs estiver ausente, clique no arquivo Resources.resx no Gerenciador de Soluções.

  12. Na janela Propriedades, configure a propriedade Custom Tool como ResXFileCodeGenerator.

  13. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto Dsl, aponte para Adicionar e clique em Nova Pasta.

  14. Nomeie a pasta como Personalizado.

  15. Clique com o botão direito do mouse na pasta Personalizado, aponte para Adicionar e clique em Novo Item.

  16. Na caixa de diálogo Adicionar Novo Item, na lista Modelos, clique em Arquivo de Código.

  17. Na caixa Nome, digite BackgroundImage.cs e clique em Adicionar.

  18. Copie o código a seguir no arquivo BackgroundImage.cs, ajustando o namespace, o nome da classe do diagrama e o nome do recurso do arquivo de imagem.

    Substitua "MyDiagramClass" pelo nome da classe parcial do diagrama definido em Dsl\GeneratedCode\Diagrams.cs. Também é possível recuperar o namespace correto do arquivo Dsl\GeneratedCode\Diagrams.cs.

    using System;
    using Microsoft.VisualStudio.Modeling.Diagrams;
    
    // Fix the namespace:
    namespace Fabrikam.MyLanguage
    {
      // Fix the Diagram Class name - get it from GeneratedCode\Diagram.cs
    
      public partial class Language29Diagram
      {
        protected override void InitializeInstanceResources()
        {
          // Fix the Resources namespace and the Image resource name:
          ImageField backgroundField = new ImageField("background",
              Fabrikam.MyLanguage.Properties.Resources.MyPicture);
    
          backgroundField.DefaultFocusable = false;
          backgroundField.DefaultSelectable = false;
          backgroundField.DefaultVisibility = true;
          backgroundField.DefaultUnscaled = false;
    
          shapeFields.Add(backgroundField);
    
          backgroundField.AnchoringBehavior
            .SetTopAnchor(AnchoringBehavior.Edge.Top, 0.01);
          backgroundField.AnchoringBehavior
            .SetLeftAnchor(AnchoringBehavior.Edge.Left, 0.01);
          backgroundField.AnchoringBehavior
            .SetRightAnchor(AnchoringBehavior.Edge.Right, 0.01);
          backgroundField.AnchoringBehavior
            .SetBottomAnchor(AnchoringBehavior.Edge.Bottom, 0.01);
    
          base.InitializeInstanceResources();
        }
      }
    }
    

    Para obter mais informações sobre como personalizar o modelo com o código do programa, consulte Navegando e atualizando um modelo no código do programa.

Consulte também

Conceitos

Definindo formas e conectores

Personalizando campos de texto e imagem

Navegando e atualizando um modelo no código do programa

Outros recursos

Escrevendo código para personalizar uma linguagem específica do domínio