تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] Picturebox بخلفية شفافة فوق الويب براوزر
#11
انا لم أحاول أن أضع كونترول شفاف علي ويب براوزر من قبل
و  انا لو في مكانك سوف ارسم عليه ما أريد حتي أتحكم في الشفافية بشكل أفضل
عموما حاول تري ماذا سيحدث معك بعد التعديل علي الكونترول بالشكل التالي

PHP كود :
Public Class CairoContainer
    Inherits UserControl

    Public Sub 
New()
 
       Me.BackColor Color.Transparent
        MyBase
.SetStyle(ControlStyles.ResizeRedraw Or ControlStyles.UserPaint Or ControlStyles.AllPaintingInWmPaint Or ControlStyles.OptimizedDoubleBufferTrue)
 
   End Sub

    Protected Overrides Sub OnPaint
(As PaintEventArgs)
 
   End Sub

    Protected Overrides Sub OnPaintBackground
(As PaintEventArgs)
 
       If Me.Parent IsNot Nothing Then
            Dim rect 
As Rectangle = New Rectangle(Me.LeftMe.TopMe.WidthMe.Height)
 
           e.Graphics.TranslateTransform(-rect.X, -rect.Y)
 
           Try
                Using arg 
As New PaintEventArgs(e.Graphicsrect)
 
                   arg.Graphics.SetClip(rect)
 
                   InvokePaintBackground(Parentarg)
 
                   InvokePaint(Parentarg)
 
               End Using
            Catch ex 
As Exception
            Finally
                e
.Graphics.TranslateTransform(rect.Xrect.Y)
 
           End Try

 
       Else
            e
.Graphics.FillRectangle(New SolidBrush(Me.BackColor), ClientRectangle)
 
       End If
 
   End Sub
End 
Class 
الرد }}}
تم الشكر بواسطة: thevest_knight
#12
لم ينجح الامر اخي لان الكونترول الذي وضعت الكلاس الخاص به لا يقبل اضافة صورة و كذلك هو يلغي كل ما يأتي فوقه و يعرض خلفية الفورم
على العموم اعذرني فقد اتعبتك معي و اعتقد انو لا يوجد حل لطلبي لكن شكرا كثيرا على تفاعلك
الرد }}}
تم الشكر بواسطة:
#13
طبعا هذا الكونترول لن يقبل ان تضيف له اي كونترول اخر لأننا دمرنا الكثير من صفاته و قمنا بتحويله لشئ مثل الصورة ويجب علينا أن نرسم الكونترول
عموما أنت فقط تحتاج أن ترسم الصورة علي الكونترول في الحدث OnPaint
الكود سيكون كالتالي
لكن عليك أن تتفهم ان شفافية الكونترول لن تجعل الصورة شفافة و يجب أن تتعامل مع الصورة نفسها و تحولها لصورة شفافة ثم ترسمها


PHP كود :
   Protected Overrides Sub OnPaint(As PaintEventArgs)
 
       Dim img As Image Me.BackgroundImage
        If img IsNot Nothing Then
            e
.Graphics.DrawImage(imgClientRectangle)
 
       End If
 
   End Sub 

أخيرا أنا قلت لك من قبل انه أسهل لك ترسم علي الويب براوزر نفسه مباشرة
خاصة أن الحصول علي الشكل الجميل للكونترول له عيوبه و مشاكله
الرد }}}
تم الشكر بواسطة: thevest_knight , zinom



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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم