průhlednost u více pictureboxů   otázka

VB.NET, WinForms

Nevíte někdo, co mám udělat, aby se mi při náhodném zobrazování pictureboxů ve formuláři a při jejich částečném překrývání zprůhlednilo pozadí mezi nimi?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tohle pomocí samotného PictureBoxu udělat nelze. Šlo by to pomocí ručního vykreslování obrázků přes GDI+ (System.Drawing.*), což by bylo poměrně náročné udělat, nebo pomocí WPF což je ale jiná technologie než Windows Forms.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Co myslíte s tím "mezi nimi" a které (čeho) pozadí?

Máte-li PictureBox1 s obrázkem a chcete mít jeho pozadí průhledné, pak nastavte:

      PictureBox1.BackColor = Color.Transparent

Ovšem, má to háček, průhled půjde až na formulář, nikoliv na picturebox pod PictureBox1

Dáte-li obrázek místo do picture boxu do Image a vykreslíte s Graphics, průhled půjde na spodní objekt např.:

Public Class Form1
  Private obr1, obr2 As Image
  
 Private Sub Form1_Load(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles MyBase.Load
    obr1 = Image.FromFile("C:\obrazek1.png")
    obr2 = Image.FromFile("C:\obrazek2.png")
 End Sub

 Private Sub Form1_Paint(ByVal sender As Object, _
      ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    e.Graphics.DrawImage(obr1, 10, 10)
    e.Graphics.DrawImage(obr2, 30, 20)
  End Sub

End Class

Nahoře bude obr2, protože byl vykreslen jako fruhý

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

... tak aby bylo jasno, když jeden picturebox vykreslený s Graphics překryje druhý picturebox vykreslený s Graphics (u pictureboxů mám nastavený backcolor na transparent)=> pozadí obou pictureboxů s graphics se navzájem překryjí a to včetně graphics, ale já chci, aby se jen graphics překrývaly(oproti formuláři to jde, ale oproti jinému pictureboxu to nejde ... :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Použijte prostě jeden Picturebox se dvěma obrázky !!!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

")=> pozadí obou pictureboxů s graphics se navzájem překryjí a to včetně graphics"

Je-li pozadí PictureBox transparentní, tedy průhledné, a rodičem je formulář, průhlednost jde na formulář. Vše, co je mezi PictureBox a formulářem není vidět - ať je to pozadí nebo kresba. S tím nic nenaděláte.

Jak lze řešit, aby průhledným pozadím obrázku byl vidět objekt pod ním, je zde již uvedené. Pokud jde o vykreslování s Paint, pak tu máte další dopoučení, kreslit do jednoho PictureBoxu.

Je možnost nastavit jako rodiče jednoho PictureBoxu druhý PictureBox. Ale kresba je pak omezena hranicemi toho rodičovského. To asi také nevyhoví. Čeho vlastně chcete dosáhnout by objasnil kousek kódu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback