Muhammad Fathurrachman Ответов: 2

Как Сделать Теневую Форму В VB.Net-Что?


В VB.net, У Меня Есть Использовать Код :

'This Is The Code :

'=========================================================

Dim m_Bitmap As New Bitmap(Me.Width, Me.Height)
        Using g As Graphics = Graphics.FromImage(m_Bitmap)
            g.CopyFromScreen(Me.Location, Point.Empty, Me.Size)
            g.DrawImage(My.Resources.name_of_your_background_image_here, 0, 0, Me.Width, Me.Height)
        End Using
        Me.BackgroundImage = m_Bitmap


'=========================================================
'Copy It.
'At The Load, And Be Come
'Public Class Form1
'
'    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'        Dim m_Bitmap As New Bitmap(Me.Width, Me.Height)
'       Using g As Graphics = Graphics.FromImage(m_Bitmap)
'            g.CopyFromScreen(Me.Location, Point.Empty, Me.Size)
'            g.DrawImage(My.Resources.name_of_your_background_image_here, 0, 0, Me.Width, Me.Height)
'        End Using
'        Me.BackgroundImage = m_Bitmap
'    End Sub
'End Class


Но У Этого Кода Есть Проблема
Просто Откройте Эту Ссылку

https://lh3.googleusercontent.com/-2n8GtA086Yw/Unto19HNJ-I/AAAAAAAAAeQ/SykaIuJj4aA/w610-h339-no/Untitled.png.png

2 Ответов

Рейтинг:
1

Rakesh Meel

побывать здесь....


Пусть твоя форма отбросит тень[^]


Рейтинг:
1

Member 13820267

Общественного Класса Form1


Частный sd как новый frmShadow(Me)
Частная суб методе form1_load(как byval отправителя как объект, как byval E Как системы.EventArgs) Обрабатывает Меня.Load
СД.Расположение = Меня.Расположение
sd.shWidth = Me.Width - 10
sd.shHeight = Me.Height - 10
СД.CreateShadow()
Конец Подводной Лодки

Частная суб Form1_Move(как byval отправителя как объект, как byval E Как системы.EventArgs) Обрабатывает Меня.Move
СД.Расположение = Меня.Расположение
Конец Подводной Лодки
End Класса



Публичный класс frmShadow
Private m_width As Integer = 0
Private m_Height As Integer = 0
Частный m_color как система.Рисование.Цвет

Public Sub New(бывал владелец как контрольный)
метод InitializeComponent()
Me.Непрозрачность = 0,5
Меня.Formborderstyle Значение = Электроприводом.Формы.Formborderstyle значение.Никто
Я.владелец = владелец
Конец Подводной Лодки

Публичное свойство shWidth() как целое число
Возьми
Вернуться m_width
Конец Получить
Set(ByVal value As Integer)
m_width = значение + 5
Меня.Ширина = m_width
Комплект
Конечное Свойство

Публичное свойство shHeight() как целое число
Возьми
Вернуться m_Height
Конец Получить
Set(ByVal value As Integer)
m_Height = значение + 5
Меня.Высота = m_Height
Комплект
Конечное Свойство

Публичная собственность shColor() как система.Рисование.Цвет
Возьми
Вернуться m_color
Конец Получить
Set(ByVal value As System.Рисование.Цвет)
m_color = значение
Me.BackColor = значение
Комплект
Конечное Свойство

Public Sub CreateShadow()
Dim reg As New Region(новый прямоугольник(0, 0, m_width, m_Height))
Дим опат как новая система.Рисование.Drawing2D.GraphicsPath
Тусклый olPath как новая система.Рисование.Drawing2D.GraphicsPath
Тусклый obPath как новая система.Рисование.Drawing2D.GraphicsPath
Дим отпат как новая система.Рисование.Drawing2D.GraphicsPath
Тусклый шпат() As Point = {Новая точка(m_width - 5, 5), новая точка(m_width, 10), новая точка(m_width, m_Height - 5), новая точка(m_width - 5, m_Height), новая точка(10, m_Height), новая точка(5, m_Height - 5), новая точка(m_width - 5, m_Height - 5)}

формат opath.AddLines(shpath)
рег.Пересекаются(формат opath)

олпат.AddArc(3, Me.Height - 7, 8, 7, 45, 180)
рег.Союз(olPath)

обпат.AddArc(m_width - 7, m_Height - 7, 7, 7, 315, 180)
рег.Союз(obPath)

отпат.AddArc(m_width - 7, 3, 7, 8, 225, 180)
рег.Союз(отпат)

Меня.Регион = Рег
Меня.Показать()
Конец Подводной Лодки



End Класса