منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : Picturebox بخلفية شفافة فوق الويب براوزر
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم 
اريد أن استخدم Picturebox فوق webbrowser حيث تكون خلفيته شفافة تماما 
استخدمت صورة بخلفية شفافة و غيرت خلفية الـ picturebox إلى Transparent لكن الأمر لم ينجح

بعد بحث طويل وصلت الى كلاس خاص بتعديل خلفية ال picturebox و كان جيد لكنه لم ينجح مع الويب براوزر و اليكم الكلاس الذي وصلت اليه 
كود :
Public Class transpb
   Inherits PictureBox
   Protected Overrides Sub OnPaintBackground(ByVal e As System.Windows.Forms.PaintEventArgs)
       MyBase.OnPaintBackground(e)

       If Parent IsNot Nothing Then
           Dim index As Integer = Parent.Controls.GetChildIndex(Me)

           For i As Integer = Parent.Controls.Count - 1 To index + 1 Step -1
               Dim c As Control = Parent.Controls(i)
               If c.Bounds.IntersectsWith(Bounds) AndAlso c.Visible = True Then
                   Dim bmp As New Bitmap(c.Width, c.Height, e.Graphics)
                   c.DrawToBitmap(bmp, c.ClientRectangle)
                   e.Graphics.TranslateTransform(c.Left - Left(), c.Top - Top)
                   e.Graphics.DrawImageUnscaled(bmp, Point.Empty)
                   e.Graphics.TranslateTransform(Left() - c.Left, Top - c.Top)
                   bmp.Dispose()
               End If
           Next
       End If
   End Sub
End Class

لكن نتيجته للأسف فاشلة مع الويب براوزر كما ذكرت و تصبح خلفية الصورة بلون خلفية الفورم لذلك ارجو أن أجد عندكم الحل الماسب لطلبي و شكرا مسبقا
ما تريد من هذه الفكرة
يمكن هناك طريقة افضل من اداة picturbox
الكود الخاص بك يقوم بأخذ صورة للكونترول و يرسمها في خلفية الكونترول
عليك ان تتعامل مع نلك الصورة و تقوم بتجويلها لصورة شفافة ثم ترسمها داخل الكونترول

يجب عليك أن تراعي ان لو البكتشر بوكس به صورة فهي ستعمل كعازل لذلك يجب ان تتعامل مع تلك الصورة ايضا في الحدث Paint

ممكن أيضا ان تتعامل مع CreateParms و تقوم بعمل overrides لها بحيث تجعل الكونترول شفافا
انا فقط اريد اضافة قائة ازرار فوق الويب براوزر حيث تكون خلفية تلك الأزرار شفافة و تظهر محتوى صفحة الويب بشكل عادي
ما علاقة picturebox بالقائمة
والمتصفح يعرض صفحة نت حقيقية او كود html من عندك لان هنا فرق
برنامجي يعتمد على هذا الأمر يا اخي ازرار من البرنامج تتحكم في صفحة ال html و اريد أن أجعلها تظهر وسط الصفحة لاضفاء المزيد من الجمالية للبرنامج

(28-04-17, 10:45 PM)silverlight كتب : [ -> ]الكود الخاص بك يقوم بأخذ صورة للكونترول و يرسمها في خلفية الكونترول
عليك ان تتعامل مع نلك الصورة و تقوم بتجويلها لصورة شفافة ثم ترسمها داخل الكونترول

يجب عليك أن تراعي ان لو البكتشر بوكس به صورة فهي ستعمل كعازل لذلك يجب ان تتعامل مع تلك الصورة ايضا في الحدث Paint

ممكن أيضا ان تتعامل مع CreateParms و تقوم بعمل overrides لها بحيث تجعل الكونترول شفافا

ممكن كود أو فنكشن لتحقيق الامر لأن كل محاوللاتي فشلت
اذا كنت انت عامل صفحة html تقدر تعمل القاائمة ايضا ب html نفسها وتضفي الجمالية
اذا فهمتك غلط او اسئلتي ترفع الضغط لا تزعل واسف
في تلك الحالة أنت لا تحتاج الي البكتشر بوكس
و ربما كونترول بسيط مثل هذا قد يفيدك

PHP كود :
Public Class TrnasparentPictureBox
    Inherits UserControl

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

    Protected Overrides Sub OnPaint
(As PaintEventArgs)
 
   End Sub

End 
Class 
سأجربه و ارد بالنتيجة



نفس الشيء أخي كما ترى تبقى الحواف سوداء 
و كملاحظة فقط الأمر نفسه يحدث مع الكلاس الذي وضعته بطلبي و المحير أنهما يعملان بشكل جيد فوق الفورم و بمجرد ظهور البراوزر تصبح الخلفية الشفافة بلون الفورم
مساعدة من فضلكم
الصفحات : 1 2