تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] خلفيه شفافه
#17
(26-07-15, 05:23 PM)silverlight كتب : دي منصة صواريخ فعلا ...... Smile  و لتنفيذ مثلها تحتاج الي مجهود غير عادي من مبرمجين و متخصصين ف برامج الجرافكس لكن للاسف انا اعمل وحدي Huh  و تنفيذ مثل تلك الواجهة يحتاج الي وقت طويل للاسف يا اخي الفاضل

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

الأخ أسامة

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

الأخ أسامة

الكود التالي يوضح لك كيفية اضافة ادوات علي الفورم برمجيا و عليك تستخدم نفس الأسلوب و تضيف اي كونترول اخري لبرنامجك مع الوضع ف الاعتبار ان لا تنسي بأن تقوم بعمل Dispose لأي كونترول تضيفه الي الفورم
و أيضا عليك ضبط أماكن الكونترول بما يتناسب مع أبعاد الفورم لأن الفورم الأن لن تتغير ابعاده خاصة أننا لا  نقوم بتحريكه


كود :
Public Class ShapedForm
   Inherits Form

   Private closeButton As Button

   Public Sub New()
       MyBase.FormBorderStyle = Windows.Forms.FormBorderStyle.None
       MyBase.StartPosition = FormStartPosition.CenterScreen
       Dim sourceBitmap As Bitmap = My.Resources.earth
       Dim pixelColor As Color = sourceBitmap.GetPixel(0, 0)
       Dim bmp As Bitmap = SetBitmapBackColor(sourceBitmap.Clone, pixelColor, SystemColors.Control)
       GetImageRegion(bmp)
       Me.BackgroundImage = bmp
       Me.BackgroundImageLayout = ImageLayout.Center
       MyBase.Size = New Size(bmp.Width, bmp.Height)

       ' add the close button & do not forget to dispose the button
       closeButton = New Button
       closeButton.Text = "Exit"
       closeButton.Location = New System.Drawing.Point(200, 200)
       AddHandler closeButton.Click, AddressOf closeButton_Click
       Me.Controls.Add(closeButton)

   End Sub

   Private Function ImageToRegion(source As Bitmap, colorBack As Color) As Region
       Dim clr As Color = Color.FromArgb(colorBack.R, colorBack.G, colorBack.B)
       Dim rgn As Region = New Region()
       rgn.MakeEmpty()
       Dim rect As New Rectangle(0, 0, 0, 0)
       Dim flag As Boolean = False
       For y As Integer = 0 To source.Height - 1
           For x As Integer = 0 To source.Width - 1
               If Not flag Then
                   If source.GetPixel(x, y) <> clr Then
                       flag = True
                       rect.X = x
                       rect.Y = y
                       rect.Height = 1
                   End If
               Else
                   If source.GetPixel(x, y) = clr Then
                       flag = False
                       rect.Width = x - rect.X
                       rgn.Union(rect)
                   End If
               End If
           Next
           If flag Then
               flag = False
               rect.Width = source.Width - rect.X
               rgn.Union(rect)
           End If
       Next
       Return rgn
   End Function

   Private Sub GetImageRegion(img As Bitmap)
       Dim bmp As Bitmap = img
       Dim rgn As Region = ImageToRegion(bmp, SystemColors.Control)
       Me.Region = rgn
   End Sub

   Private Function SetBitmapBackColor(source As Bitmap, sourceColor As Color, destinationColor As Color) As Bitmap

       Dim result As System.Drawing.Bitmap = CType(Nothing, Bitmap)
       Try
           Dim bmp As Bitmap = CType(source.Clone(), Bitmap)
           Dim rect As Rectangle = New Rectangle(0, 0, bmp.Width, bmp.Height)
           Dim bmpData As Imaging.BitmapData = bmp.LockBits(rect, Imaging.ImageLockMode.ReadWrite, Imaging.PixelFormat.Format32bppArgb)

           ' Get the address of the first line.
           Dim ptr As IntPtr = bmpData.Scan0

           Dim length As Integer = Math.Abs(bmpData.Stride) * bmpData.Height
           Dim outputBytes = New Byte(length - 1) {}

           '  Copy the RGB values into the array.
           System.Runtime.InteropServices.Marshal.Copy(bmpData.Scan0, outputBytes, 0, length)
           Dim bpp = bmpData.Stride \ bmpData.Width

           Dim i = 0
           While i < length
               Dim clr As Color = Color.FromArgb(If(bpp = 4, outputBytes(i + 3), 255), outputBytes(i + 2), outputBytes(i + 1), outputBytes(i))
               If clr = sourceColor Then
                   If bpp = 4 Then
                       outputBytes(i + 3) = destinationColor.A
                   End If
                   outputBytes(i + 2) = destinationColor.R
                   outputBytes(i + 1) = destinationColor.G
                   outputBytes(i) = destinationColor.B
               End If
               i += bpp
           End While
           ' Copy the RGB values back to the bitmap
           System.Runtime.InteropServices.Marshal.Copy(outputBytes, 0, ptr, length)
           bmp.UnlockBits(bmpData)
           result = bmp
       Catch ex As Exception
           result = source
       End Try
       Return result
   End Function

   Private Sub closeButton_Click(sender As Object, e As EventArgs)
       Application.Exit()
   End Sub

End Class
الكود التالي يوضح لك كيفية عمل dispose للكونترول الذي قمنا بإضافته
عليك ان تضيفه الي الفورم أعلاه

كود :
   Private Sub DisposeObjects()
       If Me.closeButton IsNot Nothing Then
           RemoveHandler closeButton.Click, AddressOf closeButton_Click
           closeButton.Dispose()
           closeButton = Nothing
       End If
   End Sub

   Protected Overrides Sub Dispose(disposing As Boolean)
       DisposeObjects()
       MyBase.Dispose(disposing)
   End Sub

بالتوفيق ان شاء الله
جزاك الله خير اخى اسف على تعبك Angel
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
خلفيه شفافه - بواسطة أسامة - 24-07-15, 02:42 AM
RE: خلفيه شفافه - بواسطة silverlight - 24-07-15, 03:45 AM
RE: خلفيه شفافه - بواسطة أسامة - 24-07-15, 03:12 PM
RE: خلفيه شفافه - بواسطة silverlight - 25-07-15, 07:41 AM
RE: خلفيه شفافه - بواسطة أسامة - 25-07-15, 04:06 PM
RE: خلفيه شفافه - بواسطة silverlight - 25-07-15, 07:13 PM
RE: خلفيه شفافه - بواسطة الشاكي لله - 25-07-15, 10:27 PM
RE: خلفيه شفافه - بواسطة أسامة - 25-07-15, 11:26 PM
RE: خلفيه شفافه - بواسطة ابو ابراهيم - 25-07-15, 11:00 PM
RE: خلفيه شفافه - بواسطة سعود - 25-07-15, 11:15 PM
RE: خلفيه شفافه - بواسطة silverlight - 26-07-15, 03:29 AM
RE: خلفيه شفافه - بواسطة أسامة - 26-07-15, 05:21 PM
RE: خلفيه شفافه - بواسطة الشاكي لله - 26-07-15, 10:13 AM
RE: خلفيه شفافه - بواسطة silverlight - 26-07-15, 04:21 PM
RE: خلفيه شفافه - بواسطة الشاكي لله - 26-07-15, 04:51 PM
RE: خلفيه شفافه - بواسطة silverlight - 26-07-15, 05:23 PM
RE: خلفيه شفافه - بواسطة أسامة - 26-07-15, 10:17 PM
RE: خلفيه شفافه - بواسطة الشاكي لله - 28-07-15, 07:07 AM
RE: خلفيه شفافه - بواسطة silverlight - 01-08-15, 08:59 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] لون خلفيه label محمد مسافر 3 2,120 27-02-19, 06:59 PM
آخر رد: elgokr
  جلب خلفيه سطح المكتب nin9e 10 5,283 24-01-14, 03:39 PM
آخر رد: nin9e
  برنامج تغيير خلفيه سطح المكتب nin9e 22 12,320 20-01-14, 04:24 PM
آخر رد: nin9e
  استفسار عن تغير خلفيه المشروع nin9e 27 9,559 24-08-13, 03:01 AM
آخر رد: MSDOS

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


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