تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيفية عمل كنترول شفاف
#4
الشفافية لكي تتحقق تماما يجب التعامل مع الألوان و الصور في نفس الوقت
خاصة ان جميع الكونترول تحصل علي شفافيتها من الفورم نفسه
الكود التالي عبارة عن مثال بسيط يوضح كيفية الحصول غلي label شفاف بالتعامل مع الألوان فقط


PHP كود :
Imports System.ComponentModel

Public Class CairoLabel
    Inherits Label

    Private _opacity 
As Double 1

    Public Sub 
New()
 
       MyBase.SetStyle(ControlStyles.UserPaintTrue)
 
       MyBase.SetStyle(ControlStyles.ResizeRedrawTrue)
 
       MyBase.SetStyle(ControlStyles.SupportsTransparentBackColorTrue)
 
       MyBase.SetStyle(ControlStyles.AllPaintingInWmPaintTrue)
 
       MyBase.SetStyle(ControlStyles.OptimizedDoubleBufferTrue)
 
   End Sub

    
<Browsable(True), EditorBrowsable(EditorBrowsableState.Always), DefaultValue(1.0R), TypeConverter(GetType(OpacityConverter))>
 
   <RefreshProperties(RefreshProperties.All), Description("Gets or set the opacity percentage of the control."), Category("Cairo")>
 
   Public Overridable Property Opacity() As Double
        Get
            Return _opacity
        End Get
        Set
(value As Double)
 
           _opacity value
            Dim c 
As Color Me.BackColor
            Dim alpha 
As Byte CalcualteOpacity(value)
 
           Me.BackColor UpdateControlColor(calpha)
 
           Me.Invalidate()
 
       End Set
    End Property

    Protected Overrides Sub OnBackColorChanged
(As EventArgs)
 
       MyBase.OnBackColorChanged(e)
 
       Dim c As Color Me.BackColor
        Dim alpha 
As Byte CalcualteOpacity(_opacity)
 
       Me.BackColor UpdateControlColor(calpha)
 
       Me.Invalidate()
 
   End Sub

    Private 
Function UpdateControlColor(source As Coloralpha As Byte) As Color
        alpha 
Byte.MaxValue alpha
        Return Color
.FromArgb(CInt((- (alpha Byte.MaxValue)) * Byte.MaxValue), source)
 
   End Function

 
   Private Function CalcualteOpacity(value As Double) As Byte
        Return CByte
((If(value 11, If(value 00value))) * 255)
 
   End Function

End Class 
Retired
الرد }}}
تم الشكر بواسطة: سعود , viv , viv


الردود في هذا الموضوع
كيفية عمل كنترول شفاف - بواسطة bidaya - 31-05-18, 09:42 PM
RE: كيفية عمل كنترول شفاف - بواسطة bidaya - 01-06-18, 02:49 AM
RE: كيفية عمل كنترول شفاف - بواسطة silverlight - 01-06-18, 03:02 AM
RE: كيفية عمل كنترول شفاف - بواسطة bidaya - 01-06-18, 04:21 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيفية منع ظهور الأخطاء من إعدادات البيسيك mmaalmesry 2 848 29-08-25, 10:30 AM
آخر رد: mmaalmesry
  كيفية جلب أسماء الأعمدة بجدول من جداول sql heem1986 2 745 17-08-25, 09:15 PM
آخر رد: heem1986
  كيفية حفظ إعدادات البرنامج بحيث لا تتغير أحمد إبراهيم سعد 4 3,001 06-08-25, 06:34 PM
آخر رد: Taha Okla
  مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك ahmedfa71 13 2,222 09-07-25, 11:24 PM
آخر رد: أبو خالد الشكري
  كيفية احتساب الفرق بين تاريخين بناء على عدد معين مصمم هاوي 2 553 15-01-25, 02:02 PM
آخر رد: مصمم هاوي
  كيفية التعامل مع inputbox في فيجوال ستوديو أسامة حسين 4 3,502 14-01-25, 02:04 AM
آخر رد: أبو خالد الشكري
  كيفية معرفة الجهاز رئيسي ام فرعي المتألق9 1 396 13-11-24, 06:41 PM
آخر رد: justforit
  كيفية معرفة تاريخ انشاء ملف وحدفه المتألق9 2 504 07-11-24, 08:54 AM
آخر رد: F.H.M
  كيفية جلب بيانات بشرط الأستبعاد heem1986 1 334 28-08-24, 10:06 PM
آخر رد: justforit
  سؤال عن كيفية حفظ التغير في الداتا قريد فيو في قاعدة الببانات saud1004 4 523 20-06-24, 12:48 PM
آخر رد: saud1004

التنقل السريع :


يقوم بقرائة الموضوع: