←Select platform

ImagePanViewer Class

Summary

Represents a LEADTOOLS image pan control for displaying a scaled view of an image.

Syntax

C#
VB
C++
public class ImagePanViewer : IComponentConnector, UserControl 
  
Public Class ImagePanViewer  
   Inherits System.Windows.Controls.UserControl 
   Implements System.ComponentModel.ISupportInitialize, System.Windows.IFrameworkInputElement, System.Windows.IInputElement, System.Windows.Markup.IAddChild, System.Windows.Markup.IComponentConnector, System.Windows.Markup.IQueryAmbient, System.Windows.Media.Animation.IAnimatable  
public ref class ImagePanViewer : public System.Windows.Controls.UserControl, System.ComponentModel.ISupportInitialize, System.Windows.IFrameworkInputElement, System.Windows.IInputElement, System.Windows.Markup.IAddChild, System.Windows.Markup.IComponentConnector, System.Windows.Markup.IQueryAmbient, System.Windows.Media.Animation.IAnimatable   

Remarks

The ImagePanViewer control is used to display a scaled view of an image, which is also being displayed in the ImageViewer or RasterImageViewer controls at a size that would require scrolling.

ImagePanViewer will maintain the images aspect ratio, a colored pan rectangle will be displayed to indicate the portion of the image currently being displayed in the ImageViewer or RasterImageViewer associated with this pan control.

When a user clicks inside the ImagePanViewer and moves the mouse while holding down the button, the pan rectangle will move with the mouse pointer.

Set the Source property to the ImageViewer or RasterImageViewer object to be panned.

The control draws the pan rectangle using the Stroke as its color, StrokeThickness as the size of the rectangle border in pixels. You can fill the area inside the pan rectangle with InnerBrush and the area outside the pan rectangle with OuterBrush.

Example

C#
VB
Silverlight C#
Silverlight VB
using Leadtools.Help; 
using Leadtools.Windows.Controls; 
 
class MyWindow1 : Window 
{ 
   public ImagePanViewer panViewer; 
   public ImageViewer viewer; 
   public DockPanel dockPanel; 
 
   public MyWindow1(string title) 
      : base() 
   { 
      Title = title; 
 
      // Set the size of the window 
      Width = 800; 
      Height = 600; 
 
      // Create the viewer 
      viewer = new ImageViewer(); 
      viewer.Width = 400; 
      viewer.Height = 400; 
 
      // Load an image 
      viewer.Source = new BitmapImage(new Uri(Path.Combine(LEAD_VARS.ImagesDir, "cannon.jpg"))); 
 
      panViewer = new ImagePanViewer(); 
      panViewer.Width = 200; 
      panViewer.Height = 200; 
      panViewer.HorizontalAlignment = HorizontalAlignment.Center; 
      panViewer.VerticalAlignment = VerticalAlignment.Center; 
      panViewer.Pan += new EventHandler<ImagePanViewerEventArgs>(panViewer_Pan); 
 
      dockPanel = new DockPanel(); 
      Content = dockPanel; 
      dockPanel.Children.Add(viewer); 
      dockPanel.Children.Add(panViewer); 
      DockPanel.SetDock(panViewer, Dock.Top); 
 
      panViewer.Stroke = Brushes.Blue; 
      Brush brush = new LinearGradientBrush(Colors.Red, Colors.Black, 45); 
      panViewer.InnerBrush = new SolidColorBrush(Color.FromArgb(128, 192, 192, 192)); 
      panViewer.OuterBrush = new SolidColorBrush(Color.FromArgb(128, 200, 192, 192)); 
      panViewer.Position = new Point(10, 10); 
      panViewer.Cursor = Cursors.Hand; 
      panViewer.Source = viewer; 
   } 
 
   private void panViewer_Pan(object sender, ImagePanViewerEventArgs e) 
   { 
      switch (e.Status) 
      { 
         case ImagePanViewerStatus.Begin: 
         case ImagePanViewerStatus.Panning: 
         case ImagePanViewerStatus.End: 
            { 
               Title = "Pan Status = " + e.Status.ToString() + " Rectangle =" + e.Rectangle.ToString() + " Cancel = " + e.Cancel.ToString(); 
               Console.WriteLine(Title); 
               break; 
            } 
      } 
   } 
} 
 
public void ImagePanViewer_Source() 
{ 
   MyWindow1 window = new MyWindow1("Test_MyImagePanViewer: Writes events to console"); 
   window.ShowDialog(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools.Windows.Controls 
 
Private Class MyWindow1 : Inherits Window 
   Public panViewer As ImagePanViewer 
   Public viewer As ImageViewer 
   Public dockPanel As DockPanel 
 
   Public Sub New(ByVal title As String) 
      MyBase.New() 
      title = title 
 
      ' Set the size of the window 
      Width = 800 
      Height = 600 
 
      ' Create the viewer 
      viewer = New ImageViewer() 
      viewer.Width = 400 
      viewer.Height = 400 
 
      ' Load an image 
      viewer.Source = New BitmapImage(New Uri(Path.Combine(LEAD_VARS.ImagesDir, "cannon.jpg"))) 
 
      panViewer = New ImagePanViewer() 
      panViewer.Width = 200 
      panViewer.Height = 200 
      panViewer.HorizontalAlignment = HorizontalAlignment.Center 
      panViewer.VerticalAlignment = VerticalAlignment.Center 
      AddHandler panViewer.Pan, AddressOf panViewer_Pan 
 
      dockPanel = New DockPanel() 
      Content = dockPanel 
      dockPanel.Children.Add(viewer) 
      dockPanel.Children.Add(panViewer) 
      dockPanel.SetDock(panViewer, Dock.Top) 
 
      panViewer.Stroke = Brushes.Blue 
      Dim brush As Brush = New LinearGradientBrush(Colors.Red, Colors.Black, 45) 
      panViewer.InnerBrush = New SolidColorBrush(Color.FromArgb(128, 192, 192, 192)) 
      panViewer.OuterBrush = New SolidColorBrush(Color.FromArgb(128, 200, 192, 192)) 
      panViewer.Position = New Point(10, 10) 
      panViewer.Cursor = Cursors.Hand 
      panViewer.Source = viewer 
   End Sub 
 
   Private Sub panViewer_Pan(ByVal sender As Object, ByVal e As ImagePanViewerEventArgs) 
      Select Case e.Status 
         Case ImagePanViewerStatus.Begin, ImagePanViewerStatus.Panning, ImagePanViewerStatus.End 
            Title = "Pan Status = " & e.Status.ToString() & " Rectangle =" & e.Rectangle.ToString() & " Cancel = " & e.Cancel.ToString() 
            Console.WriteLine(Title) 
            Exit Select 
      End Select 
   End Sub 
End Class 
 
Public Sub ImagePanViewer_Source() 
   Dim window As MyWindow1 = New MyWindow1("Test_MyImagePanViewer: Writes events to console") 
   window.ShowDialog() 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
using Leadtools.Help; 
using Leadtools.Windows.Controls; 
 
class MyWindow1 : ChildWindow 
{ 
   public ImagePanViewer panViewer; 
   public ImageViewer viewer; 
   public StackPanel stackPanel; 
 
   public MyWindow1(string title) 
      : base() 
   { 
      Title = title; 
 
      // Set the size of the window 
      Width = 800; 
      Height = 600; 
 
      // Create the viewer 
      viewer = new ImageViewer(); 
      viewer.Width = 400; 
      viewer.Height = 400; 
 
      // Load an image 
      viewer.Source = new BitmapImage(new Uri(LeadtoolsExamples.Common.ImagesPath.Path + "cannon.jpg")); 
 
      panViewer = new ImagePanViewer(); 
      panViewer.Width = 200; 
      panViewer.Height = 200; 
      panViewer.HorizontalAlignment = HorizontalAlignment.Center; 
      panViewer.VerticalAlignment = VerticalAlignment.Center; 
      panViewer.Pan += new EventHandler<ImagePanViewerEventArgs>(panViewer_Pan); 
 
      stackPanel = new StackPanel(); 
      Content = stackPanel; 
      stackPanel.Children.Add(viewer); 
      stackPanel.Children.Add(panViewer); 
 
      panViewer.Stroke = new SolidColorBrush(Colors.Blue); 
 
      GradientStop color1 = new GradientStop(); 
      color1.Color = Colors.Red; 
      GradientStop color2 = new GradientStop(); 
      color2.Color = Colors.Black; 
 
      GradientStopCollection csc = new GradientStopCollection(); 
      csc.Add(color1); 
      csc.Add(color2); 
 
      Brush brush = new LinearGradientBrush(csc, 45.0); 
      panViewer.InnerBrush = new SolidColorBrush(Color.FromArgb(128, 192, 192, 192)); 
      panViewer.OuterBrush = new SolidColorBrush(Color.FromArgb(128, 200, 192, 192)); 
      panViewer.Position = new Point(10, 10); 
      panViewer.Cursor = Cursors.Hand; 
      panViewer.Source = viewer; 
   } 
 
   private void panViewer_Pan(object sender, ImagePanViewerEventArgs e) 
   { 
      switch (e.Status) 
      { 
         case ImagePanViewerStatus.Begin: 
         case ImagePanViewerStatus.Panning: 
         case ImagePanViewerStatus.End: 
            { 
               Title = "Pan Status = " + e.Status.ToString() + " Rectangle =" + e.Rectangle.ToString() + " Cancel = " + e.Cancel.ToString(); 
               Console.WriteLine(Title); 
               break; 
            } 
      } 
   } 
} 
 
public void ImagePanViewer_Source() 
{ 
   MyWindow1 window = new MyWindow1("Test_MyImagePanViewer: Writes events to console"); 
   window.Show(); 
} 
Imports Leadtools.Windows.Controls 
 
Private Class MyWindow1 : Inherits ChildWindow 
   Public panViewer As ImagePanViewer 
   Public viewer As ImageViewer 
   Public stackPanel As StackPanel 
 
   Public Sub New(ByVal title As String) 
      MyBase.New() 
      title = title 
 
      ' Set the size of the window 
      Width = 800 
      Height = 600 
 
      ' Create the viewer 
      viewer = New ImageViewer() 
      viewer.Width = 400 
      viewer.Height = 400 
 
      ' Load an image 
      viewer.Source = New BitmapImage(New Uri(LeadtoolsExamples.Common.ImagesPath.Path & "cannon.jpg")) 
 
      panViewer = New ImagePanViewer() 
      panViewer.Width = 200 
      panViewer.Height = 200 
      panViewer.HorizontalAlignment = HorizontalAlignment.Center 
      panViewer.VerticalAlignment = VerticalAlignment.Center 
      AddHandler panViewer.Pan, AddressOf panViewer_Pan 
 
      stackPanel = New StackPanel() 
      Content = stackPanel 
      stackPanel.Children.Add(viewer) 
      stackPanel.Children.Add(panViewer) 
 
      panViewer.Stroke = New SolidColorBrush(Colors.Blue) 
 
      Dim color1 As GradientStop = New GradientStop() 
      color1.Color = Colors.Red 
      Dim color2 As GradientStop = New GradientStop() 
      color2.Color = Colors.Black 
 
      Dim csc As GradientStopCollection = New GradientStopCollection() 
      csc.Add(color1) 
      csc.Add(color2) 
 
      Dim brush As Brush = New LinearGradientBrush(csc, 45.0) 
      panViewer.InnerBrush = New SolidColorBrush(Color.FromArgb(128, 192, 192, 192)) 
      panViewer.OuterBrush = New SolidColorBrush(Color.FromArgb(128, 200, 192, 192)) 
      panViewer.Position = New Point(10, 10) 
      panViewer.Cursor = Cursors.Hand 
      panViewer.Source = viewer 
   End Sub 
 
   Private Sub panViewer_Pan(ByVal sender As Object, ByVal e As ImagePanViewerEventArgs) 
      Select Case e.Status 
         Case ImagePanViewerStatus.Begin, ImagePanViewerStatus.Panning, ImagePanViewerStatus.End 
            Title = "Pan Status = " & e.Status.ToString() & " Rectangle =" & e.Rectangle.ToString() & " Cancel = " & e.Cancel.ToString() 
            Console.WriteLine(Title) 
            Exit Select 
      End Select 
   End Sub 
End Class 
 
Public Sub ImagePanViewer_Source() 
   Dim window As MyWindow1 = New MyWindow1("Test_MyImagePanViewer: Writes events to console") 
   window.Show() 
End Sub 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Windows.Controls Assembly