Leadtools.Windows.Controls Namespace : RasterImageViewer Class |
public class RasterImageViewer : ImageViewer, System.ComponentModel.ISupportInitialize, System.Windows.IFrameworkInputElement, System.Windows.IInputElement, System.Windows.Markup.IAddChild, System.Windows.Markup.IQueryAmbient, System.Windows.Media.Animation.IAnimatable
'Declaration Public Class RasterImageViewer Inherits ImageViewer Implements System.ComponentModel.ISupportInitialize, System.Windows.IFrameworkInputElement, System.Windows.IInputElement, System.Windows.Markup.IAddChild, System.Windows.Markup.IQueryAmbient, System.Windows.Media.Animation.IAnimatable
'Usage Dim instance As RasterImageViewer
public sealed class RasterImageViewer : System.ComponentModel.ISupportInitialize, System.Windows.IFrameworkInputElement, System.Windows.IInputElement, System.Windows.Markup.IAddChild, System.Windows.Markup.IQueryAmbient, System.Windows.Media.Animation.IAnimatable
function Leadtools.Windows.Controls.RasterImageViewer()
public ref class RasterImageViewer : public ImageViewer, System.ComponentModel.ISupportInitialize, System.Windows.IFrameworkInputElement, System.Windows.IInputElement, System.Windows.Markup.IAddChild, System.Windows.Markup.IQueryAmbient, System.Windows.Media.Animation.IAnimatable
The RasterImageViewer class derives from ImageViewer and adds functionality to display a LEADTOOLS Leadtools.RasterImage object in WPF/Silverlight applications. To display a System.Windows.Media.ImageSource or one of its derived classes, use the ImageViewer control.
In addition to all the features supported by the ImageViewer class, RasterImageViewer adds the following:
Viewing a LEADTOOLS Leadtools.RasterImage object in WPF/Silverlight applications using the Image property.
In WPF/Silverlight, an image that is displayed must be an System.Windows.Media.ImageSource or one of its derived classes, the RasterImageViewer control keeps the ImageViewer.Source property synchronized with RasterImageViewer.Image, any changes that occur to the LEADTOOLS Leadtools.RasterImage is reflected in the Source property and a standard System.Windows.FrameworkPropertyMetadata.AffectsMeasure or System.Windows.FrameworkPropertyMetadata.AffectsRender is performed. Also, this control will subscribe to the RasterImage.Changed to monitor any changes that may occur to the image (through image processing for example) and reflect these changes to the Source property.
If the Source property is changed, the RasterImageViewer must be informed so it can reflect the changes into the Image object. The UpdateImageFromSource can be used to perform this task.
Private Class MyWindow1 : Inherits Window Private theViewer As RasterImageViewer Public Sub New() ' Create the viewer theViewer = New RasterImageViewer() ' Create Dock Panel Dim panel As DockPanel = New DockPanel() Content = panel DockPanel.SetDock(theViewer, Dock.Bottom) theViewer.HorizontalAlignment = HorizontalAlignment.Center theViewer.VerticalAlignment = VerticalAlignment.Bottom theViewer.UseDpi = True panel.Children.Add(theViewer) ' Load an image into the viewer Using codecs As RasterCodecs = New RasterCodecs() theViewer.Image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"), 1, CodecsLoadByteOrder.Bgr, 1, 1) End Using Dim flip As FlipCommand = New FlipCommand() flip.Run(theViewer.Image) Title = String.Format("Size mode = {0}, double click to change", theViewer.SizeMode) AddHandler theViewer.MouseDoubleClick, AddressOf theViewer_MouseDoubleClick End Sub Private Sub theViewer_MouseDoubleClick(ByVal sender As Object, ByVal e As MouseButtonEventArgs) Select Case theViewer.SizeMode Case SizeMode.Normal theViewer.SizeMode = SizeMode.Stretch Case SizeMode.Stretch theViewer.SizeMode = SizeMode.Fit Case SizeMode.Fit theViewer.SizeMode = SizeMode.FitAlways Case SizeMode.FitAlways theViewer.SizeMode = SizeMode.FitWidth Case SizeMode.FitWidth theViewer.SizeMode = SizeMode.Normal End Select Title = String.Format("Size mode = {0}, double click to change", theViewer.SizeMode) End Sub End Class Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
class MyWindow1 : Window { RasterImageViewer theViewer; public MyWindow1() { // Create the viewer theViewer = new RasterImageViewer(); // Create Dock Panel DockPanel panel = new DockPanel(); Content = panel; DockPanel.SetDock(theViewer, Dock.Bottom); theViewer.HorizontalAlignment = HorizontalAlignment.Center; theViewer.VerticalAlignment = VerticalAlignment.Bottom; theViewer.UseDpi = true; panel.Children.Add(theViewer); // Load an image into the viewer using (RasterCodecs codecs = new RasterCodecs()) { theViewer.Image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"), 1, Leadtools.Codecs.CodecsLoadByteOrder.Bgr, 1, 1); } FlipCommand flip = new FlipCommand(); flip.Run(theViewer.Image); Title = string.Format("Size mode = {0}, double click to change", theViewer.SizeMode); theViewer.MouseDoubleClick += new MouseButtonEventHandler(theViewer_MouseDoubleClick); } void theViewer_MouseDoubleClick(object sender, MouseButtonEventArgs e) { switch (theViewer.SizeMode) { case SizeMode.Normal: theViewer.SizeMode = SizeMode.Stretch; break; case SizeMode.Stretch: theViewer.SizeMode = SizeMode.Fit; break; case SizeMode.Fit: theViewer.SizeMode = SizeMode.FitAlways; break; case SizeMode.FitAlways: theViewer.SizeMode = SizeMode.FitWidth; break; case SizeMode.FitWidth: theViewer.SizeMode = SizeMode.Normal; break; } Title = string.Format("Size mode = {0}, double click to change", theViewer.SizeMode); } } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }
class MyWindow1 : ChildWindow { RasterImageViewer theViewer; public MyWindow1() { // Create the viewer theViewer = new RasterImageViewer(); // Create Dock Panel StackPanel panel = new StackPanel(); Content = panel; theViewer.HorizontalAlignment = HorizontalAlignment.Center; theViewer.VerticalAlignment = VerticalAlignment.Bottom; theViewer.UseDpi = true; panel.Children.Add(theViewer); // Load an image into the viewer RasterCodecs codecs = new RasterCodecs(); theViewer.Image = codecs.Load(LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp", 1, Leadtools.Codecs.CodecsLoadByteOrder.Bgr, 1, 1); FlipCommand flip = new FlipCommand(); flip.Run(theViewer.Image); Title = string.Format("Size mode = {0}, double click to change", theViewer.SizeMode); theViewer.MouseLeftButtonDown += new MouseButtonEventHandler(theViewer_MouseLeftButtonDown); } void theViewer_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { switch (theViewer.SizeMode) { case SizeMode.Normal: theViewer.SizeMode = SizeMode.Stretch; break; case SizeMode.Stretch: theViewer.SizeMode = SizeMode.Fit; break; case SizeMode.Fit: theViewer.SizeMode = SizeMode.FitAlways; break; case SizeMode.FitAlways: theViewer.SizeMode = SizeMode.FitWidth; break; case SizeMode.FitWidth: theViewer.SizeMode = SizeMode.Normal; break; } Title = string.Format("Size mode = {0}, double click to change", theViewer.SizeMode); } }
Private Class MyWindow1 : Inherits ChildWindow Private theViewer As RasterImageViewer Public Sub New() ' Create the viewer theViewer = New RasterImageViewer() ' Create Dock Panel Dim panel As StackPanel = New StackPanel() Content = panel theViewer.HorizontalAlignment = HorizontalAlignment.Center theViewer.VerticalAlignment = VerticalAlignment.Bottom theViewer.UseDpi = True panel.Children.Add(theViewer) ' Load an image into the viewer Dim codecs As RasterCodecs = New RasterCodecs() theViewer.Image = codecs.Load(LeadtoolsExamples.Common.ImagesPath.Path & "Image1.cmp", 1, CodecsLoadByteOrder.Bgr, 1, 1) Dim flip As FlipCommand = New FlipCommand() flip.Run(theViewer.Image) Title = String.Format("Size mode = {0}, double click to change", theViewer.SizeMode) AddHandler theViewer.MouseLeftButtonDown, AddressOf theViewer_MouseLeftButtonDown End Sub Private Sub theViewer_MouseLeftButtonDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs) Select Case theViewer.SizeMode Case SizeMode.Normal theViewer.SizeMode = SizeMode.Stretch Case SizeMode.Stretch theViewer.SizeMode = SizeMode.Fit Case SizeMode.Fit theViewer.SizeMode = SizeMode.FitAlways Case SizeMode.FitAlways theViewer.SizeMode = SizeMode.FitWidth Case SizeMode.FitWidth theViewer.SizeMode = SizeMode.Normal End Select Title = String.Format("Size mode = {0}, double click to change", theViewer.SizeMode) End Sub End Class
<Window x:Class="WPFSamples.RasterImageViewer" 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" Height="600" Width="800"> <DockPanel> <Leadtools_Windows_Controls:RasterImageViewer Name="theViewer" Image="file:///c:\users\Public\Documents\LEADTOOLS Images\Image1.cmp" DockPanel.Dock= "Bottom" HorizontalAlignment="Center" VerticalAlignment="Bottom" UseDpi="false" /> </DockPanel> <Window.Title> "RasterImageViewer" </Window.Title> </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