The following code provides the VB.NET implementation of the ISupportIntegralResizing interface.
VB.NET |
Copy Code |
Imports System Imports Xceed.Editors Imports System.Windows.Forms Imports System.Drawing Imports System.Collections
Namespace Xceed.Editors.Samples Public Class PictureViewer Inherits UserControl Implements ISupportIntegralResizing
Public Sub New(ByVal images As ArrayList)
Me.SetStyle(ControlStyles.DoubleBuffer Or ControlStyles.AllPaintingInWmPaint Or _ ControlStyles.UserPaint, True)
m_images = images
End Sub
Public Property IntegralHeight() As Boolean Implements ISupportIntegralResizing.IntegralHeight Get Return m_integralHeight End Get Set(ByVal Value As Boolean) m_integralHeight = Value End Set End Property
Public Property IntegralWidth() As Boolean Implements ISupportIntegralResizing.IntegralWidth Get Return m_integralWidth End Get Set(ByVal Value As Boolean) m_integralWidth = Value End Set End Property
Public Function GetPreferredHeight( ByVal height As Integer ) As Integer Implements ISupportIntegralResizing.GetPreferredHeight Return Math.Floor(height / m_imageSize) * m_imageSize End Function
Public Function GetPreferredWidth( ByVal width As Integer ) As Integer Implements ISupportIntegralResizing.GetPreferredWidth Return Math.Floor(width / m_imageSize) * m_imageSize End Function
Protected Overrides ReadOnly Property DefaultSize() As Size Get Return New Size( m_imageSize, m_imageSize ) End Get End Property
Protected Overrides Sub OnPaintBackground( ByVal pevent As PaintEventArgs ) pevent.Graphics.FillRectangle( SystemBrushes.Control, Me.ClientRectangle )
Dim imageIndex As Integer = 0 Dim j As Integer = 0
While j < Me.Size.Height Dim i As Integer = 0
While i < Me.Size.Width pevent.Graphics.DrawImage( CType( m_images( imageIndex ), Image ), i, j, m_imageSize, _ m_imageSize ) imageIndex += 1
If imageIndex > m_images.Count - 1 Then Return End If i += m_imageSize End While
j += m_imageSize End While End Sub
Private m_images As ArrayList Private m_integralHeight As Boolean = True Private m_integralWidth As Boolean = True Private m_imageSize As Integer = 100
End Class
End Namespace |