Ir ao conteúdo
  • Cadastre-se

C# Como fazer Transparência em C#


Bergamaschi.

Posts recomendados

Olá, estou usando o C# com o Visual Studio, só testando funcionalidades.

Basicamente antes do programa principal rodar, vai aparecer um Form com o nome de "Splash" que vai ficar por 2 segundos, fechar e abrir o form principal. Consegui fazer isso de buenas usando o timer, ok. Nesse form "splash", é uma imagem em PNG, com fundo transparente, ou seja, colocando o background transparente, vai ficar só a imagem, como se fosse uma pequena propaganda, ou um bannerzinho enfeitando, só pra testar mesmo.

Porém a opção de Background/Transparency Key não funciona com transparente, existe a opção mas ele diz que o valor não é permitido.

Estava lendo uns tutoriais, e tem como habilitar ele sim, porém não consegui fazer. Ele leu, não deu erro, porém não está transparente e sim com o fundo de cor cinza normal (o default).

Citação

De acordo com esse tutorial, basta adicionar no construtor:

 
SetStyle(ControlStyles.SupportsTransparentBackColor, True)

e logo na linha de baixo acrescentar:

 
this.BackColor = Color.Transparent;

A descrição do "SupportsTransparenteBackColor" diz:

Citação
Se verdadeiro, o controle aceita em System.Windows.Forms.Control.BackColor um componente alfa com menos de 255 para simular transparência. A transparência só vai ser simulada se o System.Windows.Forms.ControlStyles.UserPaint "bit" estiver setado como true e o "parent control" for derivado de System.Windows.Control.

Tentei acrescentar isso:

 
SetStyle(System.Windows.Forms.ControlStyles.UserPaint, true)

Mas nem deu em nada.

______________

Dúvidas

Como solucionar esse problema?

Seria o construtor isso?

public partial class Splash : Form

{

public Splash()

{

SetStyle(ControlStyles.SupportsTransparentBackColor, true);

SetStyle(System.Windows.Forms.ControlStyles.UserPaint, true);

//this.BackColor = Color.Transparent;

InitializeComponent();

}

}

 

Porque eles desabilitam essa opção de transparência por padrão? Ela pega muito da memória, deixa o programa mais lento.. porque??

Obrigado pela ajuda! ^^

Link para o comentário
Compartilhar em outros sites

Basta fazer assim:


// Escolha uma cor de fundo não utilizada
this.BackColor = Color.Thistle;
// Agora defina o TransparencyKey para a mesma cor
this.TransparencyKey = Color.Thistle;
// Opcional. Deixe o form sem bordas e barra de título
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

Link para o comentário
Compartilhar em outros sites

  • 8 anos depois...
Em 29/04/2012 às 06:47, Shoxsz disse:

Nao entendi muito mas eu faço assim pra ficarem transparente, EX:

label1.Parent = Picturebox1;

label1.backcolor = color.transparent

O picturebox1 nesse caso é usado porque a label estaria em cima dele

Depois de muito tempo postado, utilizei a dica e funcionou perfeitamente nas condições mencionadas.

Obrigado

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...