Leadtools.Windows.Controls Namespace > ImageViewer Class : CenterAtPoint Method |
'Usage Dim instance As ImageViewer Dim pt As Point instance.CenterAtPoint(pt)
function Leadtools.Windows.Controls.ImageViewer.CenterAtPoint( pt )
The control will position the scrollbars according to user cursor moves, therefore, this method is only functional if the control has visible scrollbars (SizeMode is SizeMode.Normal or SizeMode.FitWidth and the view port is less than the image size).
The control will call this method during InteractiveMode.Pan.
Private Sub ZoomAndCenter(ByVal viewer As ImageViewer, ByVal scaleFactor As Double) ' Minimum and maximum scale factors allowed (change if you have to) Const minimumScaleFactor As Double = 0.05 Const maximumScaleFactor As Double = 11 ' Normalize the scale factor based on min and max scaleFactor = Math.Max(minimumScaleFactor, Math.Min(maximumScaleFactor, scaleFactor)) ' Check if we need to change the scale factor for the viewer If viewer.ScaleFactor <> scaleFactor Then ' Get the current center in logical units ' We will use this point later to re-center the viewer ' Get what you see in physical coordinates Dim rc As Rect = Rect.Intersect(New Rect(0, 0, viewer.ActualWidth, viewer.ActualHeight), New Rect(viewer.PhysicalSize)) ' Get the center of what you see in physical coordinates Dim center As Point = New Point(rc.Left + rc.Width / 2 * scaleFactor, rc.Top + rc.Height / 2 * scaleFactor) ' Set the new scale factor viewer.ScaleFactor = scaleFactor ' Bring the old center into the center of the view viewer.CenterAtPoint(center) End If End Sub
void ZoomAndCenter(ImageViewer viewer, double scaleFactor) { // Minimum and maximum scale factors allowed (change if you have to) const double minimumScaleFactor = 0.05; const double maximumScaleFactor = 11; // Normalize the scale factor based on min and max scaleFactor = Math.Max(minimumScaleFactor, Math.Min(maximumScaleFactor, scaleFactor)); // Check if we need to change the scale factor for the viewer if(viewer.ScaleFactor != scaleFactor) { // Get the current center in logical units // We will use this point later to re-center the viewer // Get what you see in physical coordinates Rect rc = Rect.Intersect(new Rect(0, 0, viewer.ActualWidth, viewer.ActualHeight), new Rect(viewer.PhysicalSize)); // Get the center of what you see in physical coordinates Point center = new Point(rc.Left + rc.Width / 2 * scaleFactor, rc.Top + rc.Height / 2 * scaleFactor); // Set the new scale factor viewer.ScaleFactor = scaleFactor; // Bring the old center into the center of the view viewer.CenterAtPoint(center); } }
void ZoomAndCenter(ImageViewer viewer, double scaleFactor) { // Minimum and maximum scale factors allowed (change if you have to) const double minimumScaleFactor = 0.05; const double maximumScaleFactor = 11; // Normalize the scale factor based on min and max scaleFactor = Math.Max(minimumScaleFactor, Math.Min(maximumScaleFactor, scaleFactor)); // Check if we need to change the scale factor for the viewer if(viewer.ScaleFactor != scaleFactor) { // Get the current center in logical units // We will use this point later to re-center the viewer // Get what you see in physical coordinates LeadRect rc = LeadRect.Intersect(new LeadRect(0, 0, (int)viewer.ActualWidth, (int)viewer.ActualHeight), new LeadRect(0, 0, (int)viewer.PhysicalSize.Width, (int)viewer.PhysicalSize.Height)); // Get the center of what you see in physical coordinates Point center = new Point(rc.Left + rc.Width / 2 * scaleFactor, rc.Top + rc.Height / 2 * scaleFactor); // Set the new scale factor viewer.ScaleFactor = scaleFactor; // Bring the old center into the center of the view viewer.CenterAtPoint(center); } }
Private Sub ZoomAndCenter(ByVal viewer As ImageViewer, ByVal scaleFactor As Double) ' Minimum and maximum scale factors allowed (change if you have to) Const minimumScaleFactor As Double = 0.05 Const maximumScaleFactor As Double = 11 ' Normalize the scale factor based on min and max scaleFactor = Math.Max(minimumScaleFactor, Math.Min(maximumScaleFactor, scaleFactor)) ' Check if we need to change the scale factor for the viewer If viewer.ScaleFactor <> scaleFactor Then ' Get the current center in logical units ' We will use this point later to re-center the viewer ' Get what you see in physical coordinates Dim rc As LeadRect = LeadRect.Intersect(New LeadRect(0, 0, CInt(viewer.ActualWidth), CInt(viewer.ActualHeight)), New LeadRect(0, 0, CInt(viewer.PhysicalSize.Width), CInt(viewer.PhysicalSize.Height))) ' Get the center of what you see in physical coordinates Dim center As Point = New Point(rc.Left + rc.Width / 2 * scaleFactor, rc.Top + rc.Height / 2 * scaleFactor) ' Set the new scale factor viewer.ScaleFactor = scaleFactor ' Bring the old center into the center of the view viewer.CenterAtPoint(center) End If End Sub
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2