منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] Picturebox بخلفية شفافة فوق الويب براوزر - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [سؤال] Picturebox بخلفية شفافة فوق الويب براوزر (/showthread.php?tid=20184)

الصفحات: 1 2


Picturebox بخلفية شفافة فوق الويب براوزر - thevest_knight - 28-04-17

السلام عليكم 
اريد أن استخدم 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

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


RE: Picturebox بخلفية شفافة فوق الويب براوزر - rmlq - 28-04-17

ما تريد من هذه الفكرة
يمكن هناك طريقة افضل من اداة picturbox


RE: Picturebox بخلفية شفافة فوق الويب براوزر - silverlight - 28-04-17

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

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

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


RE: Picturebox بخلفية شفافة فوق الويب براوزر - thevest_knight - 28-04-17

انا فقط اريد اضافة قائة ازرار فوق الويب براوزر حيث تكون خلفية تلك الأزرار شفافة و تظهر محتوى صفحة الويب بشكل عادي


RE: Picturebox بخلفية شفافة فوق الويب براوزر - rmlq - 28-04-17

ما علاقة picturebox بالقائمة
والمتصفح يعرض صفحة نت حقيقية او كود html من عندك لان هنا فرق


RE: Picturebox بخلفية شفافة فوق الويب براوزر - thevest_knight - 28-04-17

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

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

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

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

ممكن كود أو فنكشن لتحقيق الامر لأن كل محاوللاتي فشلت


RE: Picturebox بخلفية شفافة فوق الويب براوزر - rmlq - 28-04-17

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


RE: Picturebox بخلفية شفافة فوق الويب براوزر - silverlight - 28-04-17

في تلك الحالة أنت لا تحتاج الي البكتشر بوكس
و ربما كونترول بسيط مثل هذا قد يفيدك

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 



RE: Picturebox بخلفية شفافة فوق الويب براوزر - thevest_knight - 28-04-17

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



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


RE: Picturebox بخلفية شفافة فوق الويب براوزر - thevest_knight - 29-04-17

مساعدة من فضلكم