ورود

View Full Version : AllowsTransparency در UserControl



xxnagin
دوشنبه 09 بهمن 1391, 21:21 عصر
سلام
چطوری میشه لبه های یه عکس در usercontrol رو برداشت
همونطور که میدونید تو windows application گزینه AllowsTransparency هست
و تو user control گزینه ای برای این کار نیست چگونه میشه این کارو کرد
من میخوام همین کارو تو user control انجام بدم
من یه عکس دارم و میخوام گوشه های خالی رو بردارم همون بریدن لبه های فرم

xxnagin
پنج شنبه 12 بهمن 1391, 21:13 عصر
خودم یه نمونه پیدا کردم
در ضمن منظورم همون Me.TransparencyKey=Me.BackColor در windows form هستش که میاد گوشه های خالی عکس رو برمی داره تو عکسها رنگ صورتی هستش
http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/baa78f9c-4a9a-42e3-a61b-073dd6fc177c
transparent a wpf UserControl in a win application


Imports System.Runtime.InteropServices
Public Class Form1
Public Const SRCCOPY As Integer = &HCC0020
<DllImport("user32.dll")> _
Public Shared Function GetWindowDC(hWnd As IntPtr) As IntPtr
End Function
<DllImport("gdi32.dll")> _
Public Shared Function BitBlt(hObject As IntPtr, nXDest As Integer, nYDest As Integer, nWidth As Integer, nHeight As Integer, hObjectSource As IntPtr, _
nXSrc As Integer, nYSrc As Integer, dwRop As Integer) As Boolean
End Function
<DllImport("gdi32.dll")> _
Public Shared Function CreateCompatibleDC(hDC As IntPtr) As IntPtr
End Function
<DllImport("user32.dll")> _
Public Shared Function GetDesktopWindow() As IntPtr
End Function
<System.Runtime.InteropServices.DllImport("gdi32.dll")> _
Public Shared Function DeleteObject(hObject As IntPtr) As Boolean
End Function
Private Sub Form_Des_load(sender As Object, e As System.EventArgs) Handles Me.Load
ElementHost1.BackgroundImage = CaptureWindow(GetDesktopWindow())
End Sub
'**************************Capture Window ****************************
Public Function CaptureWindow(handle As IntPtr) As Bitmap
Dim bitmaps As New Bitmap(Me.Width, Me.Height)
Dim g As Graphics = Graphics.FromImage(bitmaps)
Dim bmDC As System.IntPtr = g.GetHdc()
Dim hdcSrc As IntPtr = GetWindowDC(handle)
BitBlt(bmDC, 0, 0, Me.Width, Me.Height, hdcSrc, _
Me.Left, Me.Top, SRCCOPY)
g.Dispose()
Return bitmaps
End Function
End Class

مهدی فرزاد
پنج شنبه 12 بهمن 1391, 21:24 عصر
سلام
به نظر شما بجای این همه دردسر کل برنامه رو با WPF بنویسید که امکانات بیشتری داره ! بهتر نیست؟

xxnagin
پنج شنبه 12 بهمن 1391, 22:09 عصر
من یه نمونه mp3 player میدم wpf ش رو برام بسازید
http://wdl.persiangig.com/pages/download/?dl=http://xnagin.persiangig.com/vb_xnagin/vis2.rar
مهم رقص نور هستش برای پخش هیچ مشکلی ندارم
من در این نمونه از رقص نورهای winamp استفاده کردم و روی wpf هم تست کردم جواب نگرفتم
میتونید wpf این نمونه رو برام بنویسید
ابتدا اهنگ رو انتخاب کنید بعد برای اجرای رقص نور روی صفحه راست کلیک کنید

xxnagin
شنبه 14 بهمن 1391, 12:08 عصر
سلام
به نظر شما بجای این همه دردسر کل برنامه رو با WPF بنویسید که امکانات بیشتری داره ! بهتر نیست؟

در ضمن هر چیزی که امکانات داشته باشه قرار نیست که خوب باشه و قرار نیست از اون استفاده کرد
اگه این جوری بود که مایکروسافت نمی اومد wpf رو با windows form با هم تو یه پرژه استفاده کنه و برعکس
یعنی یه wpf , user control رو در windows form استفاده نمی کرد
هر کدوم تونست خواسته هاتون رو بر اورده کنه از اون استفاده میکنن

یا هر دو یا یکی از این دو مهم اون چیز رو که میخواین کدوم یک بهتر نظرات رو براورده کنه
در اینجا wpf گرافیکش نسبت به windows form بهتره من طراحی رو از این کمک میگیرم