Erro: A propriedade TransparencyKey não é eficaz para formulários do Windows se a intensidade da cor do monitor é definida como um valor que é maior que 24 bits

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 822495
Sintomas
Quando você executa um aplicativo do Microsoft Windows com a propriedade TransparencyKey do formulário definido como uma das cores da imagem de plano de fundo, áreas do formulário que corresponder à cor que você definir a propriedade TransparencyKey para não são processadas como transparentes.
Causa
Este erro ocorre quando a intensidade da cor do monitor é definida como um valor maior que 24 bits. Quando a intensidade da cor do monitor é definida como um valor que é maior que 24 bits, a propriedade TransparencyKey não é eficaz. Portanto, as áreas no formulário que coincidem com a cor que você definir a propriedade TransparencyKey não são processadas como transparentes.
Como Contornar
Para contornar esse bug, defina programaticamente a propriedade BackgroundImage e a propriedade TransparencyKey . Para fazer isso, execute as seguintes etapas:
  1. Criar um arquivo de exemplo bitmap (.bmp) ou selecione um arquivo de bitmap que já está disponível no seu computador.
  2. Acrescentar o código a seguir no Form1 construtor da classe após InitializeComponent instrução.

    Microsoft Visual Basic .NET ou Microsoft Visual Basic 2005
    Dim Img As Bitmap = Bitmap.FromFile("c:\\Example.bmp")'The color at Pixel(10,10) is rendered as transparent for the complete background. Img.MakeTransparent(Img.GetPixel(10, 10))Me.BackgroundImage = ImgMe.TransparencyKey = Img.GetPixel(10, 10)
    Microsoft Visual translation from VPE for Csharp .NET ou Microsoft Visual translation from VPE for Csharp 2005
    System.Drawing.Bitmap Img = new System.Drawing.Bitmap("c:\\Example.bmp");//The color at Pixel(10,10) is rendered as transparent for the complete background. Img.MakeTransparent(Img.GetPixel(10,10));this.BackgroundImage = Img;this.TransparencyKey = Img.GetPixel(10,10);
  3. Recrie o aplicativo.
Observação No código de exemplo, modificar .bmp C:\\ Example baseia a imagem de plano de fundo do seu computador.
Situação
A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados no começo deste artigo.
Mais Informações

Passos para reproduzir o problema

  1. Inicie o Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005.
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. Em Project Types , clique em Projetos do Visual Basic ou em projetos translation from VPE for Csharp Visual .

    Observação No Visual Studio 2005, clique em Visual Basic ou Visual translation from VPE for Csharp em Tipos de projeto .
  4. Em modelos , clique em Windows Application e em seguida, clique em OK .

    Por padrão, o Form1 é adicionado para o projeto.
  5. Clique com o botão direito do mouse no Form1 e, em seguida, clique em Propriedades .
  6. Na janela Properties, defina a propriedade BackgroundImage a imagem de plano de fundo que você usar como plano de fundo para o formulário.
  7. Defina a propriedade TransparencyKey do Form1 como uma das cores da imagem de plano de fundo.
  8. No menu arquivo , clique em Salvar tudo para salvar o projeto.
  9. No menu Debug , clique em Iniciar para executar o aplicativo.

    Por padrão, Form1 aparece na tela. As áreas do formulário que corresponder à cor que você definir a propriedade TransparencyKey não são processadas como transparentes.
Referências
Para obter mais informações sobre a propriedade TransparencyKey , visite o seguinte site:

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 822495 - Última Revisão: 11/26/2007 07:58:47 - Revisão: 2.8

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual C# 2005 Express Edition, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbmt kbvs2005applies kbvs2005swept kbproperties kbcolor kbbitmap kbdisplay kbwindowsforms kbbug KB822495 KbMtpt
Comentários