Click here to Skip to main content
15,886,026 members
Articles / Multimedia / GDI+

AlphaGradientPanel, an extended panel

Rate me:
Please Sign up or sign in to vote.
4.63/5 (64 votes)
24 Mar 2006CPOL 267.9K   10.5K   122  
A panel that has rounded borders, gradients, and transparency.
Imports System
Imports System.Drawing.Design
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.ComponentModel.Design.CollectionEditor
Imports System.Globalization
Imports System.Collections
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Windows.Forms.Design
Imports System.Text

Public Class ColorWithAlphaCollectionPropertyDescriptor
    Inherits PropertyDescriptor

    Private _Collection As ColorWithAlphaCollection = Nothing
    Private _Index As Integer = -1

    Sub New(ByVal Collection As ColorWithAlphaCollection, ByVal Index As Integer)
        MyBase.New("#" + Index.ToString(), Nothing)
        _Collection = Collection
        _Index = Index
    End Sub

    Public Overrides Function CanResetValue(ByVal component As Object) As Boolean
        Return True
    End Function

    Public Overrides ReadOnly Property ComponentType() As System.Type
        Get
            Return _Collection.GetType
        End Get
    End Property

    Public Overrides Function GetValue(ByVal component As Object) As Object
        Return _Collection(_Index)
    End Function

    Public Overrides ReadOnly Property IsReadOnly() As Boolean
        Get
            Return False
        End Get
    End Property

    Public Overrides ReadOnly Property PropertyType() As System.Type
        Get
            Return _Collection(_Index).GetType()
        End Get
    End Property

    Public Overrides Sub ResetValue(ByVal component As Object)

    End Sub

    Public Overrides Sub SetValue(ByVal component As Object, ByVal value As Object)

    End Sub

    Public Overrides Function ShouldSerializeValue(ByVal component As Object) As Boolean
        Return True
    End Function

    Public Overrides ReadOnly Property Attributes() As System.ComponentModel.AttributeCollection
        Get
            Return New AttributeCollection(Nothing)
        End Get
    End Property

    Public Overrides ReadOnly Property DisplayName() As String
        Get
            Dim item As ColorWithAlpha = _Collection(_Index)
            Return "Color " & _Index
        End Get
    End Property

    Public Overrides ReadOnly Property Description() As String
        Get
            Return "Defines a color with an alpha level (0-255). 0 being transparent and 255 being full opaque"
        End Get
    End Property

    Public Overrides ReadOnly Property Name() As String
        Get
            Return "#" + _Index.ToString()
        End Get
    End Property

End Class

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
Switzerland Switzerland
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions