This article will demonstrate Image Zoom In, Zoom Out, Rotate functionality in
Silverlight 4.
First of all make a new silverlight project using visual studio 2010 and place a
project name and save location in local directory.
Let's drag and drop one image control and three button on page and add an image
using Add Existing Items menu click.
<UserControl
x:Class="TestStoryBoard.Test"
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">
<Grid
x:Name="mainCanvas"
Height="404"
Width="733"
Background="Black">
<Grid.ColumnDefinitions>
<ColumnDefinition
/>
<ColumnDefinition
Width="Auto"
MinWidth="95"
/>
</Grid.ColumnDefinitions>
<Grid
x:Name="grid1"
Height="400"
Width="636"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Image
x:Name="image1"
Source="orton-nomercy07.jpg"
Stretch="Uniform"
HorizontalAlignment="Center"
VerticalAlignment="Center"
RenderTransformOrigin="0.5,
0.5">
<Image.RenderTransform>
<TransformGroup>
<RotateTransform
x:Name="Rotator"/>
<ScaleTransform
x:Name="Scale"
/>
</TransformGroup>
</Image.RenderTransform>
</Image>
</Grid>
<StackPanel
Grid.Column="1"
Margin="0,2,3,0"
VerticalAlignment="Top"
Height="81">
<Button
x:Name="ZoomInButton"
Click="ZoomInButton_Click"
Content="Zoom
In"
Height="25"
FontWeight="Bold"
FontStyle="Italic"
>
<Button.Background>
<LinearGradientBrush
EndPoint="0.5,1"
StartPoint="0.5,0">
<GradientStop
Color="Black"
Offset="0"/>
<GradientStop
Color="#FFE21E1E"
Offset="1"/>
</LinearGradientBrush>
</Button.Background>
</Button>
<Button
x:Name="ZoomOutButton"
Click="ZoomOutButton_Click"
Content="Zoom
Out"
FontWeight="Bold"
FontStyle="Italic"
>
<Button.Background>
<LinearGradientBrush
EndPoint="0.5,1"
StartPoint="0.5,0">
<GradientStop
Color="Black"
Offset="0"/>
<GradientStop
Color="#FFAF1F1F"
Offset="1"/>
</LinearGradientBrush>
</Button.Background>
</Button>
<Button
x:Name="RotateButton"
Click="RotateButton_Click"
Content="Rotate"
FontWeight="Bold"
>
<Button.Background>
<LinearGradientBrush
EndPoint="0.5,1"
StartPoint="0.5,0">
<GradientStop
Color="Black"
Offset="0"/>
<GradientStop
Color="#FFB41C1C"
Offset="1"/>
</LinearGradientBrush>
</Button.Background>
</Button>
</StackPanel>
</Grid>
</UserControl>
Code Behind:
private
double angle = 90;
private
void ZoomInButton_Click(object
sender, RoutedEventArgs e)
{
Scale.ScaleX += 0.25;
Scale.ScaleY += 0.25;
}
private void
ZoomOutButton_Click(object sender,
RoutedEventArgs e)
{
if (Scale.ScaleX > 0.25)
{
Scale.ScaleX -= 0.25;
Scale.ScaleY -= 0.25;
}
}
private void
RotateButton_Click(object sender, RoutedEventArgs
e)
{
Rotator.Angle += angle;
if (Rotator.Angle == 360)
Rotator.Angle = 0;
}
Now run the application and see the result.
![1.jpg]()
Image1.
When you click on Zoom In Button image will enlarge.
![2.jpg]()
Image2.
When click on Zoom Out image will be small.
![3.jpg]()
Image3.
When click on Rotate Button.
![4.jpg]()
Image4.
![5.jpg]()
Image5.
![6.jpg]()
Image 6.
We are done here.