Zoom a MultiScaleImage : Image « Graphics « Silverlight






Zoom a MultiScaleImage

   
<UserControl x:Class='SilverlightApplication3.MainPage'
    xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' 
    xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
    xmlns:d='http://schemas.microsoft.com/expression/blend/2008' 
    xmlns:mc='http://schemas.openxmlformats.org/markup-compatibility/2006' 
    mc:Ignorable='d' 
    d:DesignWidth='640' 
    d:DesignHeight='480'>

    <Grid x:Name="LayoutRoot" Background="White">
        <MultiScaleImage x:Name="myMultiScaleImage" Source="images/dzc_output.xml" />
    </Grid>
</UserControl>

//File: Page.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace SilverlightApplication3
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();

            this.KeyDown += new KeyEventHandler(Page_KeyDown);
            this.KeyUp += new KeyEventHandler(Page_KeyUp);
            myMultiScaleImage.MouseLeftButtonDown += new MouseButtonEventHandler(myMultiScaleImage_MouseLeftButtonDown);                

        }

        private bool shouldZoom = true;                                           
        void Page_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Shift)                                                 
                shouldZoom = false;
        }

        void Page_KeyUp(object sender, KeyEventArgs e)
        {
              shouldZoom = true;                                                      
        }

        void myMultiScaleImage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            Point point = e.GetPosition(myMultiScaleImage);
            point = myMultiScaleImage.ElementToLogicalPoint(point);
            
            if (shouldZoom == true)
                myMultiScaleImage.ZoomAboutLogicalPoint(1.5, point.X, point.Y);       
            else
                myMultiScaleImage.ZoomAboutLogicalPoint(0.5, point.X, point.Y);       
        }
    }
}

   
    
    
  








Related examples in the same category

1.Creating an Image
2.Change image Opacity
3.Animating Opacity in JPEG Images
4.Add image control to Canvas
5.Rendering Clipped JPEG ImagesRendering Clipped JPEG Images
6.Applying Transforms to JPEG Images
7.Image Brushes and JPEG ImagesImage Brushes and JPEG Images
8.Adds two Image controls to a grid, one to row 1 column 0 and the second to row 2 column 0
9.Rotate controls counterclockwise by setting Angle to a negative value between 0 and -360
10.Use the Image element with a reference to a URI
11.Using an Image as an Opacity Mask
12.Using the Jpeg Image
13.Image element
14.Image as Resource
15.Load image from a URI
16.Different image stretch optionsDifferent image stretch options
17.Reflection effects
18.DropShadows ImagesDropShadows Images
19.An Image that uses a picture from another domain
20.Referencing a relative multiscale image in XAML
21.Referencing a relative multiscale image at runtime
22.Use of the None option on an adequately sized Image element
23.Image Stretch=Uniform
24.Image Stretch=Fill
25.Image Stretch=UniformToFill
26.Blur an Image
27.Image Drops Sharow
28.Use slider to rotate an Image
29.Image Reflection