vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Transparente Bilder 
Autor: Manfred X
Datum: 16.02.18 11:53

Du gibst nur einige Code-Ausschnitte wieder,
so daß ich nicht beurteilen kann, was Du erreichen willst
bzw. wo mögliche Fehler liegen.

NonFlickerPanel könnte evt. so gestaltet werden ...
Partial Public Class NonFlickerPanel
    Inherits Panel
 
    Private _img As Image = New Bitmap(20, 20) 'Default
 
    Public Property Img As Image
        Set(value As Image)
            If value Is Nothing Then Exit Property
            _img = value
            Invalidate()
        End Set
        Get
            Return _img
        End Get
    End Property
 
    Public Sub New()
        DoubleBuffered = True
        Me.SetStyle(ControlStyles.Opaque, True)
        Me.SetStyle(ControlStyles.OptimizedDoubleBuffer, False)
        Me.SetStyle(ControlStyles.SupportsTransparentBackColor, True)
        Me.SetStyle(System.Windows.Forms.ControlStyles.ResizeRedraw, True)
        MyBase.BackColor = System.Drawing.Color.Transparent
    End Sub
 
 
    Protected Overrides ReadOnly Property CreateParams() As _
      System.Windows.Forms.CreateParams
        Get
            Dim cp As CreateParams = MyBase.CreateParams
            cp.ExStyle = cp.ExStyle Or &H20  ' Turn on WS_EX_TRANSPARENT
            Return cp
        End Get
    End Property
 
 
    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
 
        MyBase.OnPaint(e)
 
        'Zoomen und Zentrieren des übergebenen Bildes
        Dim zfw As Double = Me.Width / _img.Width
        Dim zfh As Double = Me.Height / _img.Height
        Dim zf As Double = Math.Min(zfh, zfw)
        Dim w As Integer = CInt(zf * _img.Width)
        Dim h As Integer = CInt(zf * _img.Height)
        Dim l As Integer = CInt((Me.Width - w) / 2)
        Dim t As Integer = CInt((Me.Height - h) / 2)
        Dim dr As New Rectangle(l, t, w, h)
 
        e.Graphics.DrawImage(_img, dr)
    End Sub
End Class
Die Eigenschaft "img" des Panel muß beim Ändern des "SelectedControl"
in Form1 das erforderliche Bild dort jeweils zugewiesen bekommen.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Transparente Bilder1.935dm148515.02.18 09:03
Re: Transparente Bilder1.027Manfred X15.02.18 11:52
Re: Transparente Bilder1.129dm148515.02.18 13:27
Re: Transparente Bilder990Manfred X15.02.18 18:06
Re: Transparente Bilder1.004dm148516.02.18 10:07
Re: Transparente Bilder1.012Manfred X16.02.18 11:53
Re: Transparente Bilder983dm148516.02.18 13:44
Re: Transparente Bilder999Manfred X16.02.18 15:16
Re: Transparente Bilder1.002dm148516.02.18 15:29
Re: Transparente Bilder1.085dm148516.02.18 13:54
Re: Transparente Bilder959dm148516.02.18 14:44
Re: Transparente Bilder981Kuno6016.02.18 22:26
Re: Transparente Bilder951GPM17.02.18 15:43
Re: Transparente Bilder987dm148519.02.18 12:01
Re: Transparente Bilder1.027GPM19.02.18 23:56
Re: Transparente Bilder1.035dm148520.02.18 09:17
Re: Transparente Bilder988GPM20.02.18 11:08
Re: Transparente Bilder1.099dm148520.02.18 11:18
Re: Transparente Bilder983GPM20.02.18 22:26
Re: Transparente Bilder1.059dm148520.02.18 22:55
Re: Transparente Bilder980dm148521.02.18 08:50
Re: Transparente Bilder918GPM21.02.18 14:39
Re: Transparente Bilder887dm148521.02.18 21:18
Re: Transparente Bilder880dm148524.02.18 21:15

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel