elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  AYUDA!! Interface en Visual studio con transparencia degradada.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: AYUDA!! Interface en Visual studio con transparencia degradada.  (Leído 2,699 veces)
xustyx

Desconectado Desconectado

Mensajes: 213


Ver Perfil
AYUDA!! Interface en Visual studio con transparencia degradada.
« en: 2 Noviembre 2012, 18:27 pm »

Buenas a todos!

Pues me gustaría comentaros que estoy probando de crear una interfaz degradada con visual estudio y no lo consigo :S

Primeramente con gimp genero el archivo en PNG con su degradado correspondiente y se ve bien, pero a la hora de ponerlo en visual Studio y ejecutarlo las transparencias se ven acartonadas XD mas o menos no se como explicarlo.

Aquí va un trozo de código para explicarme mejor.
Código
  1. this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage"))); //Aqui pongo la imagen.
  2. this.BackColor = System.Drawing.Color.GreenYellow; //Cojo el tipico color verdoso de fondo.
  3. this.TransparencyKey = System.Drawing.Color.GreenYellow; //Y lo pongo como clave de transparencia...
  4.  

Bueno al ejecutarlo como es lógico el verde se vuelve transparente pero el problema esta en los bordes y en una transparencia degradada que no me la coje ...

No se si me entenderéis pero lo que quiero hacer por ejemplo que lo que tenga nivel 100% de ese verde sea 100% transparente y lo que este un poco mezclado debido al degradado de transparencia también se degrade pero proporcionalmente.

Muchas gracias y nos vemos :)

--------------------------------------------------------------------------------
Para que os hagais una idea esto es lo que pasa...
La primera es en el gimp creada, la segunda es cuando ejecuto la aplicacion, y la tercera es como quiero que se vea digamos difuminada la transparecia.




Como podeis ver, el verde del cuadrado sí que se quita, pero al mezclarse con la semitransparencia del naranja el color cambia y no lo detecta como transparente... y así queda.

--------------------------------------------------------------------------------
Me estaba preguntando si podria cojer la imagen de fondo y una imagen del mismo tamaño con un gradiente blanco y negro y decirle que contra mas negro sea menos opaco es y sobreponerlas o algo asi :S

--------------------------------------------------------------------------------
Bueno estoy probando ahora con XAML(WPF) Con expression Blend ahora os contaré si lo consigo que parece que sí

[MOD] No hagas cuadruple post.....usa el botón "modificar" para añadir comentarios, Gracias.


« Última modificación: 3 Noviembre 2012, 05:19 am por simorg » En línea

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: AYUDA!! Interface en Visual studio con transparencia degradada.
« Respuesta #1 en: 4 Noviembre 2012, 04:48 am »

Los colores ARGB, poseen el canal Alpha para las transparencias puedes jugar con el evento Paint e ir disminuyendo Alpha...

 
Código
  1.    'Guardara la posición vertical (en el eje Y donde dibujamos la linea)
  2.    Dim vertical As Integer = 0
  3.  
  4.    'Guarda el avance en el degradado
  5.    Dim pasoAlpha As Double
  6.  
  7.    'Guarda el valor de Alpha
  8.    Dim alpha As Double = 255
  9.  
  10.    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
  11.  
  12.        '255 es el valor maximo de Alpha (Byte)'
  13.        'dividimos entre el alto del Form para
  14.        'saber cuanto debemos restar a Alpha en
  15.        'cada linea que dibujemos
  16.        pasoAlpha = 255 / (Me.Height - 1)
  17.  
  18.        'Mientras que no nos pasemos de los limites del Form y Alpha se valido
  19.        While vertical < Me.Height And alpha > 0
  20.  
  21.            'Dibujamos la linea
  22.            e.Graphics.DrawLine(New Pen(Color.FromArgb(alpha, _
  23.                                                       Color.GreenYellow.R, _
  24.                                                       Color.GreenYellow.G, _
  25.                                                       Color.GreenYellow.B)), _
  26.                                                       0, vertical, _
  27.                                                       Me.Width - 1, vertical)
  28.            'Avanzamos uno hacia abajo (eje Y)
  29.            vertical += 1
  30.  
  31.            'Degradamos otro paso
  32.            alpha -= pasoAlpha
  33.  
  34.        End While
  35.  
  36.    End Sub

Claro el GDI+ de Visual Studio es muy potente y puedes hacerlo también de formas más fáciles...

Código
  1. Imports System.Drawing.Drawing2D
  2.  
  3. Public Class Form1
  4.  
  5.    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
  6.  
  7.        Dim Rectángulo As Rectangle = New Rectangle(0, 0, Me.Width, Me.Height)
  8.  
  9.        Dim Brocha As New LinearGradientBrush(Rectángulo, Color.Red, Color.Green, LinearGradientMode.Vertical)
  10.  
  11.        e.Graphics.FillRectangle(Brocha, Rectángulo)
  12.  
  13.    End Sub
  14.  
  15. End Class
  16.  

Y aquí están las sobrecargas del constructor de LinearGradientBrush

http://msdn.microsoft.com/es-es/library/system.drawing.drawing2d.lineargradientbrush.lineargradientbrush%28v=vs.80%29.aspx


« Última modificación: 4 Noviembre 2012, 23:52 pm por Keyen Night » En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con Microsoft Visual Studio 2008 C++
Programación C/C++
Gabiita 2 2,448 Último mensaje 13 Junio 2010, 13:01 pm
por Eternal Idol
Ayuda Visual Studio 2008 Profesional!!!
Programación Visual Basic
diana marlene 1 1,639 Último mensaje 13 Octubre 2011, 05:27 am
por raul338
Ayuda transparencia con una imagen
GNU/Linux
robebugaty 5 2,723 Último mensaje 20 Abril 2014, 00:23 am
por _Slash_
Aseguran que Google muestra “una versión degradada y manipulada” de Internet
Noticias
wolfbcn 0 843 Último mensaje 29 Junio 2015, 21:14 pm
por wolfbcn
[AYUDA] Interface?
Programación C/C++
Miseryk 3 1,712 Último mensaje 24 Noviembre 2015, 23:36 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines