Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [vb net 2008] trasparenza 2 oggetti

    salve, ho 2 oggetti, almeno uno, ma anche entrambi volendo, hanno un colore che diverrà trasparenza, sono 2 bmp.

    per renderli trasparenti non ho problemi, il problema sorge solo quando i due oggetti si accavallano, infatti, se li sovrappongo, l'oggetto sopra, buca l'immagine dell'oggetto sotto e mi fa visualizzare, la dove l'oggetto soprastante con la parte in trasparenza interseca l'oggetto di sottostante, il form.

    L'effetto che ne esce in soldoni è che l'oggetto sotto, sembra avere un buco, e ci si vede il form. Questo succede solo quando accavvallo un altro oggetto che ha la trasparenza attiva.

    Come posso rimediare?

  2. #2
    mi rispondo da solo

    praticamente, basta eliminare gli oggetti però non penso sia questa la soluzione definitiva, mi piacerebbe sapere se con due picturebox, posso renderle sovrapposte e trasparenti sia fra di loro senza che si buchino... cmq ecco qui senza oggetti funziona bene:

    Codice PHP:
    Public Class Form1
        
    Private Sub ImageExampleForm_Paint _
        
    (ByVal sender As System.Object_
        ByVal e 
    As System.Windows.Forms.PaintEventArgs_
        Handles MyBase
    .Paint


            
    ' Create image.
            Dim img1 As Bitmap = New Bitmap("poporing/poporing-01.bmp")
            Dim imgBg As Bitmap = New Bitmap("poporing/russia_field12.bmp")

            ' 
    Create Point for upper-left corner of image.
            
    Dim punto As New Point(15050)
            
    Dim punto2 As New Point(1010)
            
    img1.MakeTransparent(Color.Red)
            
    ' Draw image to screen.
            e.Graphics.DrawImage(imgBg, punto2)
            e.Graphics.DrawImage(img1, punto)
    e.dispose()
        End Sub 

  3. #3
    però questo costrutto che ho fatto, mi revoca la possibilità di muovere img1 i una nuovo punto sul mio form qual'ora lo volessi fare... l'unica alternativa per muovere img1 in un nuovo punto che ho trovato è stato quello di aggiungere nel pulsate dove si cambiavano le propietà un bel refresh(). Peccato che sta cosa non vadi afffatto bene, ho bisigno di aiuto, nessuno sa darmi una mano?

  4. #4
    questo è la porzione di codice su cui sto facendo dei test, vorrei fare questa cosa senza dover refreshare il tutto ogni volta. pls help


    ciao


    Codice PHP:
    Public Class Form1
        
    ' variabili pubbliche
        Public Poporing As New Point
        Public punto2 As New Point
        Public x, y As Integer
        Public premutoMovX As Integer
        Public img1 As Bitmap = New Bitmap("poporing/poporing-01.bmp")
        Public imgBg As Bitmap = New Bitmap("poporing/russia_field12.bmp")
        Private Sub bGschermo00001(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
            '
    sfondo
            punto2 
    = New Point(1010)
            
    e.Graphics.DrawImage(imgBgpunto2)

            
    'oggetto in movimento
            If premutoMovX = 1 Then
                x = x + 10
            Else
                x = 30
            End If

            Poporing = New Point(x, 25)
            img1.MakeTransparent(Color.Red)
            e.Graphics.DrawImage(img1, Poporing)
            e.Dispose()

        End Sub
       

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            premutoMovX = 1
            Refresh()
        End Sub
    End Class 
    se il refresh è d'obbligo, non si può dire di refresharmi solo le coordinate di img1?

  5. #5
    nessun suggerimento

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.