Files
2025-07-21 11:41:13 +02:00

234 lines
6.7 KiB
VB.net

<System.Runtime.InteropServices.ComVisible(False)>
Public Class ImageControl
Public Event PointSelected(n As Integer)
Public Event PointUnselected()
Public Event NewMousePosImage(pima As PointF)
Private m_ScrollVisible As Boolean = True
Public Sub New()
' This call is required by the Windows Form Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
End Sub
#Region "Public Properties"
Public ReadOnly Property DBoard() As DrawingBoard
Get
Return DrawingBoard1
End Get
End Property
Public Property PanMode() As Boolean
Get
Return DrawingBoard1.PanMode
End Get
Set(ByVal value As Boolean)
DrawingBoard1.PanMode = value
End Set
End Property
Public Property PanButton() As System.Windows.Forms.MouseButtons
Get
Return DrawingBoard1.PanButton
End Get
Set(ByVal value As System.Windows.Forms.MouseButtons)
DrawingBoard1.PanButton = value
End Set
End Property
Public Property ZoomOnMouseWheel() As Boolean
Get
Return DrawingBoard1.ZoomOnMouseWheel
End Get
Set(ByVal value As Boolean)
DrawingBoard1.ZoomOnMouseWheel = value
End Set
End Property
Public Property ZoomFactor() As Double
Get
Return DrawingBoard1.ZoomFactor
End Get
Set(ByVal value As Double)
DrawingBoard1.ZoomFactor = value
End Set
End Property
Public Property Origin() As System.Drawing.Point
Get
Return DrawingBoard1.Origin
End Get
Set(ByVal value As System.Drawing.Point)
DrawingBoard1.Origin = value
End Set
End Property
Public Property StretchImageToFit() As Boolean
Get
Return Me.DrawingBoard1.StretchImageToFit
End Get
Set(ByVal value As Boolean)
Me.DrawingBoard1.StretchImageToFit = value
End Set
End Property
Public Property MouseEnabled() As Boolean
Get
Return Me.DrawingBoard1.MouseEnaBled
End Get
Set(ByVal value As Boolean)
Me.DrawingBoard1.MouseEnaBled = value
End Set
End Property
Public ReadOnly Property ApparentImageSize() As System.Drawing.Size
Get
Return DrawingBoard1.ApparentImageSize
End Get
End Property
Public Sub fittoscreen()
Me.DrawingBoard1.fittoscreen()
End Sub
Public Sub InvertColors()
Me.DrawingBoard1.InvertColors()
End Sub
Public Sub ZoomIn()
Me.DrawingBoard1.ZoomIn()
End Sub
Public Sub ZoomOut()
Me.DrawingBoard1.ZoomOut()
End Sub
Public Property ScrollbarsVisible() As Boolean
Get
Return m_ScrollVisible
End Get
Set(ByVal value As Boolean)
m_ScrollVisible = value
Me.HScrollBar1.Visible = value
Me.VScrollBar1.Visible = value
If value = False Then
Me.DrawingBoard1.Dock = DockStyle.Fill
Else
Me.DrawingBoard1.Dock = DockStyle.None
Me.DrawingBoard1.Location = New Point(0, 0)
Me.DrawingBoard1.Width = ClientSize.Width - VScrollBar1.Width
Me.DrawingBoard1.Height = ClientSize.Height - HScrollBar1.Height
End If
End Set
End Property
#End Region
#Region "Public/Private Shadows"
Public Shadows Property Image() As System.Drawing.Image
Get
Return DrawingBoard1.Image
End Get
Set(ByVal Value As System.Drawing.Image)
DrawingBoard1.Image = Value
If Value Is Nothing Then
HScrollBar1.Enabled = False
VScrollBar1.Enabled = False
Exit Property
End If
End Set
End Property
Public Shadows Property initialimage() As System.Drawing.Image
Get
Return DrawingBoard1.initialimage
End Get
Set(ByVal value As System.Drawing.Image)
DrawingBoard1.initialimage = value
If value Is Nothing Then
HScrollBar1.Enabled = False
VScrollBar1.Enabled = False
Exit Property
End If
End Set
End Property
Public Shadows Property BackgroundImage() As System.Drawing.Image
Get
Return DrawingBoard1.BackgroundImage
End Get
Set(ByVal Value As System.Drawing.Image)
DrawingBoard1.BackgroundImage = Value
If Value Is Nothing Then
HScrollBar1.Enabled = False
VScrollBar1.Enabled = False
Exit Property
End If
End Set
End Property
#End Region
Public Sub RotateFlip(ByVal RotateFlipType As System.Drawing.RotateFlipType)
DrawingBoard1.RotateFlip(RotateFlipType)
End Sub
Private Sub DrawingBoard1_NewMousePosImage(pm As System.Drawing.PointF) Handles DrawingBoard1.NewMousePosImage
RaiseEvent NewMousePosImage(pm)
End Sub
Private Sub DrawingBoard1_PointSelected(n As Integer) Handles DrawingBoard1.PointSelected
RaiseEvent PointSelected(n)
End Sub
Private Sub DrawingBoard1_PointUnselected() Handles DrawingBoard1.PointUnselected
RaiseEvent PointUnselected()
End Sub
' DISATTIVO il richimao alla ScrollBar: Handles DrawingBoard1.SetScrollPositions
Private Sub DrawingBoard1_SetScrollPositions()
Dim DrawingWidth As Integer = DrawingBoard1.Image.Width
Dim DrawingHeight As Integer = DrawingBoard1.Image.Height
Dim OriginX As Integer = DrawingBoard1.Origin.X
Dim OriginY As Integer = DrawingBoard1.Origin.Y
Dim FactoredCtrlWidth As Integer = DrawingBoard1.Width / DrawingBoard1.ZoomFactor
Dim FactoredCtrlHeight As Integer = DrawingBoard1.Height / DrawingBoard1.ZoomFactor
HScrollBar1.Maximum = Me.DrawingBoard1.Image.Width
VScrollBar1.Maximum = Me.DrawingBoard1.Image.Height
If FactoredCtrlWidth >= DrawingBoard1.Image.Width Or StretchImageToFit Then
HScrollBar1.Enabled = False
HScrollBar1.Value = 0
Else
HScrollBar1.LargeChange = FactoredCtrlWidth
HScrollBar1.Enabled = True
HScrollBar1.Value = OriginX
End If
If FactoredCtrlHeight >= DrawingBoard1.Image.Height Or StretchImageToFit Then
VScrollBar1.Enabled = False
VScrollBar1.Value = 0
Else
VScrollBar1.Enabled = True
VScrollBar1.LargeChange = FactoredCtrlHeight
VScrollBar1.Value = OriginY
End If
End Sub
Private Sub ScrollBar_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles HScrollBar1.ValueChanged, VScrollBar1.ValueChanged
Me.DrawingBoard1.Origin = New Point(HScrollBar1.Value, VScrollBar1.Value)
End Sub
Private Sub DrawingBoard1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DrawingBoard1.Load
End Sub
End Class