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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [AYUDA]Crear skin con imagen png/bitmap/jpeg(GDI+)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [AYUDA]Crear skin con imagen png/bitmap/jpeg(GDI+)  (Leído 4,266 veces)
Kyan

Desconectado Desconectado

Mensajes: 7


Ver Perfil
[AYUDA]Crear skin con imagen png/bitmap/jpeg(GDI+)
« en: 11 Septiembre 2014, 15:56 pm »

Hola, soy nuevo en el foro y necesito ayuda, lo que quiero es si me podrían ayudar... recientemente cree un skin/tema para mi programa mediante photoshop pero no se como ponerlo, lo que yo quiero es poner esa imagen de photoshop como si fuera la form... no se si me explico... Gracias a todos.. :-X


En línea

XresH


Desconectado Desconectado

Mensajes: 384



Ver Perfil WWW
Re: [AYUDA]Crear skin con imagen png/bitmap/jpeg(GDI+)
« Respuesta #1 en: 11 Septiembre 2014, 16:58 pm »

Podrias ponerle la propiedad del form

Código
  1. BorderStyle = 0

y luego implementar tu fondo en

Código
  1. Me.Picture = App.Path & "\nombrefoto.Jpg"

o bien podes realizarlo en modo de diseño.

Si haces esto tenes que manipular algunas apis en conjunto para lograr el arrastre de la ventana desde alguna parte de tu imagen porque al ponerle el estilo de borde en 0 no vas a poder mover el form sin aplicar codigo.

Saludos.


En línea

[ - Si eres programador y quieres que tus proyectos esten en mi blog(con o sin source), consúltame! - ]
Entra A Mi Blog De Programación | | Dudas en este post :| | >>Clic para ir al Post<<
Kyan

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: [AYUDA]Crear skin con imagen png/bitmap/jpeg(GDI+)
« Respuesta #2 en: 12 Septiembre 2014, 00:24 am »

Lo hice en modo diseño y tengo el codigo para moverlo, el problema es que siendo una imagen png en el visual studio 2013 no deja poner el fondo transparente por lo tanto lo que deberia ser transparente se ve blanco... Ahora probare con el visual studio 2010 haber si me deja poner esa opcion... PD: los codigos que me diste como los aplicaria en el codigo... Pongo
Código:
#Region "Themebase"                                                           Aqui la base de aeonshack                                                               #EndRegion.                                                                                          Y tu codigo, no necesito nada mas?
« Última modificación: 12 Septiembre 2014, 00:32 am por Kyan » En línea

XresH


Desconectado Desconectado

Mensajes: 384



Ver Perfil WWW
Re: [AYUDA]Crear skin con imagen png/bitmap/jpeg(GDI+)
« Respuesta #3 en: 12 Septiembre 2014, 06:27 am »

Como esta en visual basic, asumi que era en Vb6, en Vb.NET (actualmente uso 2012, en el 2010 creo que era igual)

La propiedad de tu imagen en modo diseño es en


Código
  1. BackGroundImage

Ahi colocas la imagen que hiciste.

Para "desaparecer" los botones y dejar el form completamente sin bordes ni nada usa


En form load (tambien modificas en modo diseño, como gustes)

Código
  1. Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None

Si mal no recuerdo con esas propiedades dejas el Form sin nada con tu imagen en el.

Saludos.
En línea

[ - Si eres programador y quieres que tus proyectos esten en mi blog(con o sin source), consúltame! - ]
Entra A Mi Blog De Programación | | Dudas en este post :| | >>Clic para ir al Post<<
Kyan

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: [AYUDA]Crear skin con imagen png/bitmap/jpeg(GDI+)
« Respuesta #4 en: 12 Septiembre 2014, 16:32 pm »

Como esta en visual basic, asumi que era en Vb6, en Vb.NET (actualmente uso 2012, en el 2010 creo que era igual)

La propiedad de tu imagen en modo diseño es en


Código
  1. BackGroundImage

Ahi colocas la imagen que hiciste.

Para "desaparecer" los botones y dejar el form completamente sin bordes ni nada usa


En form load (tambien modificas en modo diseño, como gustes)

Código
  1. Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None

Si mal no recuerdo con esas propiedades dejas el Form sin nada con tu imagen en el.

Saludos.


Si los bordes tambien se pueden quitar desde la configuracion la cosa es que con una imagen png quede lo que era transparente en photoshop transparente en visual studio... porque me queda blanco.
En línea

XresH


Desconectado Desconectado

Mensajes: 384



Ver Perfil WWW
Re: [AYUDA]Crear skin con imagen png/bitmap/jpeg(GDI+)
« Respuesta #5 en: 12 Septiembre 2014, 18:10 pm »

A ver si este código te funciona, lo tengo en un proyecto que la imagen tiene una forma distinta (a la de los form tradicionales) pero no posee partes transparentes, fijate si te sirve para lo que necesitas, de lo contrario podrias intentar codearlo para que haga lo que decis, en este caso coloco una imagen y el form adapta la forma de la misma, el code no lo hice yo y no recuerdo de donde lo saque ya que fue hace mucho tiempo:

Código
  1. Public Class Form1
  2.    Inherits System.Windows.Forms.Form
  3.    Dim Arrastre As Boolean
  4.    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
  5.        Dim imagen As Image = Bitmap.FromFile("C:\url.jpg")
  6.        Me.BackgroundImage = imagen
  7.        Me.Height = imagen.Height
  8.        Me.Width = imagen.Width
  9.        Dim mibitmap As Bitmap = CType(imagen, Bitmap)
  10.        Me.Region = ObtenerRegionDelBitmap(mibitmap, mibitmap.GetPixel(0, 0))
  11.    End Sub
  12.    Private Function ObtenerRegionDelBitmap(ByVal MiImagen As Bitmap, ByVal ColorTransparente As Color) As Region
  13.        Dim RegionLocal As Region
  14.        If MiImagen Is Nothing Then Return RegionLocal
  15.        Dim ColorDeFondo As Color = ColorTransparente
  16.        Dim Largo As Integer = MiImagen.Height - 1
  17.        Dim Ancho As Integer = MiImagen.Width
  18.        Dim Fila As Integer
  19.        Dim Columna As Integer
  20.        RegionLocal = New Region(New Rectangle(0, 0, 0, 0))
  21.        For Fila = 0 To Largo
  22.            Dim ColumnaComienzo As Integer = -1
  23.            Dim ColumnaFin As Integer = -1
  24.            For Columna = 0 To Ancho
  25.                If Columna = Ancho Then
  26.                    If ColumnaComienzo <> -1 Then
  27.                        ColumnaFin = Columna
  28.                        Dim regUnion As New Region(New Rectangle(ColumnaComienzo, Fila, ColumnaFin - ColumnaComienzo, 1))
  29.                        RegionLocal.Union(regUnion)
  30.                        regUnion = Nothing
  31.                    End If
  32.                Else
  33.                    If Not MiImagen.GetPixel(Columna, Fila).Equals(ColorDeFondo) Then
  34.                        If ColumnaComienzo = -1 Then ColumnaComienzo = Columna
  35.                    ElseIf MiImagen.GetPixel(Columna, Fila).Equals(ColorDeFondo) Then
  36.                        If ColumnaComienzo <> -1 Then
  37.                            ColumnaFin = Columna
  38.                            Dim regUnion As New Region(New Rectangle(ColumnaComienzo, Fila, ColumnaFin - ColumnaComienzo, 1))
  39.                            RegionLocal.Union(regUnion)
  40.                            regUnion = Nothing
  41.                            ColumnaComienzo = -1
  42.                            ColumnaFin = -1
  43.                        End If
  44.                    End If
  45.                End If
  46.            Next
  47.        Next
  48.        Return RegionLocal
  49.    End Function
  50.    Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
  51.        Arrastre = True
  52.    End Sub
  53.    Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp
  54.        Arrastre = False
  55.    End Sub
  56.    Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
  57.        If Arrastre Then Me.Location = Me.PointToScreen(New Point(e.X, e.Y))
  58.    End Sub
  59. End Class

El unico parametro que tenes que modificar es el de la ubicacion del archivo en cuestion:

Código
  1. Dim imagen As Image = Bitmap.FromFile("C:\url.jpg")

Despues si tenes distinto el nombre del form bueno eso esta demas decirlo.

Espero te sirva.
En línea

[ - Si eres programador y quieres que tus proyectos esten en mi blog(con o sin source), consúltame! - ]
Entra A Mi Blog De Programación | | Dudas en este post :| | >>Clic para ir al Post<<
Kyan

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: [AYUDA]Crear skin con imagen png/bitmap/jpeg(GDI+)
« Respuesta #6 en: 12 Septiembre 2014, 20:20 pm »

Casi casi, ahora se ve transparente pero puse la url de la imagen pero se siguen biendo pequeñas partes donde no es transparente el fondo, es blanco´...

Te mando una imagen..(la imagen es png)
En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: [AYUDA]Crear skin con imagen png/bitmap/jpeg(GDI+)
« Respuesta #7 en: 12 Septiembre 2014, 21:40 pm »

Hola, ante todo y me gustaría la opinión de otros moderadores u otros usuarios, los temas de .net irían en esta sección

tomando el hilo del tema, no se mucho de .net pero recuerdo alguna vez que tenia una propiedad para hacer esto, al margen de esto es lo mismo que hacerlo con el api SetLayeredWindowAttributes
ahora sea con SetLayeredWindowAttributes  o con Regiones, no te va a quitar esos bordes porque no son blancos, quitandolos no queda muy lindo ya que te va a quedar todo muy pixelado, y las sombras inferiores olvídate.

para hacer un skin de este tipo tenes que recurrir a el api UpdateLayeredWindow, si la googleas con vas a encontrar ejemplos para .net


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines