Leadtools.Windows.Controls Namespace : ImagePanViewer Class |
public class ImagePanViewer : 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
'Declaration 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
'Usage Dim instance As ImagePanViewer
public sealed class ImagePanViewer : 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
function Leadtools.Windows.Controls.ImagePanViewer()
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
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.
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
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"; }
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(); }
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
<Window x:Class="WPFSamples.ImagePanViewer" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Leadtools_Windows_Controls="clr-namespace:Leadtools.Windows.Controls;assembly=Leadtools.Windows.Controls" Title="ImagePanViewer" Height="600" Width="800"> <DockPanel> <Leadtools_Windows_Controls:ImagePanViewer DockPanel.Dock= "Bottom" Width="200" Height="200" Source="{Binding ElementName=Viewer}" Stroke="Red"> </Leadtools_Windows_Controls:ImagePanViewer> <Leadtools_Windows_Controls:ImageViewer x:Name="Viewer" Source="file:///c:\users\Public\Documents\LEADTOOLS Images\cannon.jpg" Width="400" Height="400"/> </DockPanel> </Window>
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