LEADTOOLS WPF and Silverlight (Leadtools.Windows.Media.Effects assembly)
LEAD Technologies, Inc

MagnifyGlassEffect Class

Example 





Members 
Creates an effect that can be used to zoom in on a portion of an image with options to specify size, shape and color of the magnify glass and crosshairs. .NET support Silverlight support
Object Model
MagnifyGlassEffect Class
Syntax
'Declaration
 
Public Class MagnifyGlassEffect 
   Inherits System.Windows.Media.Effects.ShaderEffect
   Implements System.Windows.Media.Animation.IAnimatable 
'Usage
 
Dim instance As MagnifyGlassEffect
ObjectiveC Syntax
Java Syntax
Example
Copy CodeCopy Code  
Class MagnifyGlassEffectExampleWindow
      Inherits Window
      Private theViewer As ImageViewer
      Public Sub New()
         Dim sp As New StackPanel()
         Content = sp

         theViewer = New ImageViewer()

         theViewer.HorizontalAlignment = HorizontalAlignment.Center
         theViewer.VerticalAlignment = VerticalAlignment.Top
         theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left
         theViewer.ImageVerticalAlignment = VerticalAlignment.Top

         sp.Children.Add(theViewer)

         ' Load an image into the viewer
         theViewer.Source = New BitmapImage(New Uri(System.IO.Path.Combine(LEAD_VARS.ImagesDir, "Cannon.jpg")))

         Title = "MagnifyGlassEffect - Click and and move the mouse cursor on the image to see the effect"

         AddHandler theViewer.PreviewMouseDown, AddressOf theViewer_PreviewMouseDown
         AddHandler theViewer.MouseMove, AddressOf theViewer_MouseMove
         AddHandler theViewer.MouseUp, AddressOf theViewer_MouseUp
      End Sub

      Private Sub theViewer_PreviewMouseDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
         Dim effect As New MagnifyGlassEffect()

         Dim pos As Point = e.GetPosition(theViewer)

         Dim source As BitmapSource = DirectCast(theViewer.Source, BitmapSource)
         If Not source Is Nothing Then
            effect.Center = New Point( _
               (1.0 * pos.X) / source.PixelWidth, _
               (1.0 * pos.Y) / source.PixelHeight)

            effect.Radius = 0.25
            effect.AspectRatio = 1.0
            effect.ScaleFactor = 2.0
            effect.Color = Colors.Blue
            effect.Border = 1
            effect.CrossHairs = 1
            theViewer.ImageEffect = effect
         End If
      End Sub

      Private Sub theViewer_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
         Dim effect As MagnifyGlassEffect = DirectCast(theViewer.ImageEffect, MagnifyGlassEffect)
         If Not effect Is Nothing Then
            Dim pos As Point = e.GetPosition(theViewer)

            Dim source As BitmapSource = DirectCast(theViewer.Source, BitmapSource)
            If Not source Is Nothing Then
               effect.Center = New Point( _
                  (1.0 * pos.X) / source.PixelWidth, _
                  (1.0 * pos.Y) / source.PixelHeight)
            End If
         End If
      End Sub

      Private Sub theViewer_MouseUp(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
         If Not theViewer.ImageEffect Is Nothing Then
            theViewer.ImageEffect = Nothing
         End If
      End Sub
   End Class

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
class MagnifyGlassEffectExampleWindow : Window
   {
      private ImageViewer theViewer;
      public MagnifyGlassEffectExampleWindow()
      {
         StackPanel sp = new StackPanel();
         Content = sp;

         theViewer = new ImageViewer();

         theViewer.HorizontalAlignment = HorizontalAlignment.Center;
         theViewer.VerticalAlignment = VerticalAlignment.Top;
         theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left;
         theViewer.ImageVerticalAlignment = VerticalAlignment.Top;

         sp.Children.Add(theViewer);

         // Load an image into the viewer
         theViewer.Source = new BitmapImage(new Uri(System.IO.Path.Combine(LEAD_VARS.ImagesDir, "Cannon.jpg")));

         Title = "MagnifyGlassEffect - Click and and move the mouse cursor on the image to see the effect";

         theViewer.PreviewMouseDown += new MouseButtonEventHandler(theViewer_PreviewMouseDown);
         theViewer.MouseMove += new MouseEventHandler(theViewer_MouseMove);
         theViewer.MouseUp += new MouseButtonEventHandler(theViewer_MouseUp);
      }

      private void theViewer_PreviewMouseDown(object sender, MouseButtonEventArgs e)
      {
         MagnifyGlassEffect effect = new MagnifyGlassEffect();

         Point pos = e.GetPosition(theViewer);

         BitmapSource source = theViewer.Source as BitmapSource;
         if(source != null)
         {
            effect.Center = new Point(
               (1.0 * pos.X) / source.PixelWidth,
               (1.0 * pos.Y) / source.PixelHeight);

            effect.Radius = 0.25;
            effect.AspectRatio = 1.0;
            effect.ScaleFactor = 2.0;
            effect.Color = Colors.Blue;
            effect.Border = 1;
            effect.CrossHairs = 1;
            theViewer.ImageEffect = effect;
         }
      }

      private void theViewer_MouseMove(object sender, MouseEventArgs e)
      {
         MagnifyGlassEffect effect = theViewer.ImageEffect as MagnifyGlassEffect;
         if(effect != null)
         {
            Point pos = e.GetPosition(theViewer);

            BitmapSource source = theViewer.Source as BitmapSource;
            if(source != null)
            {
               effect.Center = new Point(
                  (1.0 * pos.X) / source.PixelWidth,
                  (1.0 * pos.Y) / source.PixelHeight);
            }
         }
      }

      private void theViewer_MouseUp(object sender, MouseButtonEventArgs e)
      {
         if(theViewer.ImageEffect != null)
         {
            theViewer.ImageEffect = null;
         }
      }
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
class MagnifyGlassEffectExampleWindow : UserControl
{
   private ImageViewer theViewer;
   public MagnifyGlassEffectExampleWindow()
   {
      StackPanel sp = new StackPanel();
      Content = sp;

      theViewer = new ImageViewer();

      theViewer.HorizontalAlignment = HorizontalAlignment.Center;
      theViewer.VerticalAlignment = VerticalAlignment.Top;
      theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left;
      theViewer.ImageVerticalAlignment = VerticalAlignment.Top;

      sp.Children.Add(theViewer);

      // Load an image into the viewer
      theViewer.Source = new BitmapImage(new Uri(LeadtoolsExamples.Common.ImagesPath.Path + "Cannon.jpg"));

      theViewer.MouseMove += new MouseEventHandler(theViewer_MouseMove);
   }

   private void theViewer_PreviewMouseDown(object sender, MouseButtonEventArgs e)
   {
      MagnifyGlassEffect effect = new MagnifyGlassEffect();

      Point pos = e.GetPosition(theViewer);

      BitmapSource source = theViewer.Source as BitmapSource;
      if(source != null)
      {
         effect.Center = new Point(
            (1.0 * pos.X) / source.PixelWidth,
            (1.0 * pos.Y) / source.PixelHeight);

         effect.Radius = 0.25;
         effect.AspectRatio = 1.0;
         effect.ScaleFactor = 2.0;
         effect.Color = Colors.Blue;
         effect.Border = 1;
         effect.CrossHairs = 1;
         theViewer.ImageEffect = effect;
      }
   }

   private void theViewer_MouseMove(object sender, MouseEventArgs e)
   {
      MagnifyGlassEffect effect = theViewer.ImageEffect as MagnifyGlassEffect;
      if(effect != null)
      {
         Point pos = e.GetPosition(theViewer);

         BitmapSource source = theViewer.Source as BitmapSource;
         if(source != null)
         {
            effect.Center = new Point(
               (1.0 * pos.X) / source.PixelWidth,
               (1.0 * pos.Y) / source.PixelHeight);
         }
      }
   }

   private void theViewer_MouseUp(object sender, MouseButtonEventArgs e)
   {
      if(theViewer.ImageEffect != null)
      {
         theViewer.ImageEffect = null;
      }
   }
}
Class MagnifyGlassEffectExampleWindow
   Inherits UserControl
   Private theViewer As ImageViewer
   Public Sub New()
      Dim sp As New StackPanel()
      Content = sp

      theViewer = New ImageViewer()

      theViewer.HorizontalAlignment = HorizontalAlignment.Center
      theViewer.VerticalAlignment = VerticalAlignment.Top
      theViewer.ImageHorizontalAlignment = HorizontalAlignment.Left
      theViewer.ImageVerticalAlignment = VerticalAlignment.Top

      sp.Children.Add(theViewer)

      ' Load an image into the viewer
      theViewer.Source = New BitmapImage(New Uri(LeadtoolsExamples.Common.ImagesPath.Path + "Cannon.jpg"))

      AddHandler theViewer.MouseMove, AddressOf theViewer_MouseMove
   End Sub

   Private Sub theViewer_PreviewMouseDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
      Dim effect As New MagnifyGlassEffect()

      Dim pos As Point = e.GetPosition(theViewer)

      Dim source As BitmapSource = DirectCast(theViewer.Source, BitmapSource)
      If Not source Is Nothing Then
         effect.Center = New Point( _
            (1.0 * pos.X) / source.PixelWidth, _
            (1.0 * pos.Y) / source.PixelHeight)

         effect.Radius = 0.25
         effect.AspectRatio = 1.0
         effect.ScaleFactor = 2.0
         effect.Color = Colors.Blue
         effect.Border = 1.0
         effect.CrossHairs = 0.0
         theViewer.ImageEffect = effect
      End If
   End Sub

   Private Sub theViewer_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
      Dim effect As MagnifyGlassEffect = DirectCast(theViewer.ImageEffect, MagnifyGlassEffect)
      If Not effect Is Nothing Then
         Dim pos As Point = e.GetPosition(theViewer)

         Dim source As BitmapSource = DirectCast(theViewer.Source, BitmapSource)
         If Not source Is Nothing Then
            effect.Center = New Point( _
               (1.0 * pos.X) / source.PixelWidth, _
               (1.0 * pos.Y) / source.PixelHeight)
         End If
      End If
   End Sub

   Private Sub theViewer_MouseUp(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
      If Not theViewer.ImageEffect Is Nothing Then
         theViewer.ImageEffect = Nothing
      End If
   End Sub
End Class
<Window x:Class="MagnifyGlassEffectExample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:leadControls="clr-namespace:Leadtools.Windows.Controls;assembly=Leadtools.Windows.Controls"
xmlns:leadEffects="clr-namespace:Leadtools.Windows.Media.Effects;assembly=Leadtools.Windows.Media.Effects"
Height="600" Width="800">
   <StackPanel>
      <leadControls:ImageViewer
            HorizontalAlignment="Center" VerticalAlignment="Top"
            ImageHorizontalAlignment="Left" ImageVerticalAlignment="Top"
            Source="file:///c:\users\Public\Documents\LEADTOOLS Images\cannon.jpg">
         <leadControls:ImageViewer.ImageEffect>
            <leadEffects:MagnifyGlassEffect
               Center="0.5,0.5" Radius="0.25" AspectRatio="1.0" ScaleFactor="2.0"
               Color="Blue" Border="1" CrossHairs="1">
            </leadEffects:MagnifyGlassEffect>
         </leadControls:ImageViewer.ImageEffect>
      </leadControls:ImageViewer>
   </StackPanel>
</Window>
Requirements

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

See Also

Reference

MagnifyGlassEffect Members
Leadtools.Windows.Media.Effects Namespace
Introduction

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.