Here is Part 1
In this article we will be seeing how to create Silverlight Slider control to zoom in and out the image.
Slider Control is used to allow the user to select from a range of values by moving the Thumb control.
Namespace: System.Windows.Controls
Assembly: System.Windows (in System.Windows.dll)
Xaml:
<Slider></Slider>
Steps Involved:
Creating a Silverlight Application:
- Open Visual Studio 2010.
- Go to File => New => Project.
- Select Silverlight from the Installed templates and choose the Silverlight Application template.
- Enter the Name and choose the location.
- Click OK.
- In the New Silverlight Application wizard check the "Host the Silverlight Application in a new Web site".
- Click OK.
Creating the UI:
Open MainPage.xaml file and replace the code with the following.
<UserControl x:Class="Image_Slider.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">
<Canvas x:Name="LayoutRoot" Width="640" Height="480">
<Image Name="img"
Source="/Image%20Slider;component/Images/Desert.jpg"
Canvas.Left="40"
Canvas.Top="30"
Height="40"
Width="40">
</Image>
<Slider Name="slider"
Canvas.Top="210"
Background="Transparent"
Height="25"
Width="150"
Maximum="0"
Minimum="100"
ValueChanged="Slider_ValueChanged" >
</Slider>
</Canvas>
</UserControl>
Open MainPage.xaml.cs file and replace the code with the following.
public partial class MainPage : UserControl
{
double start, end, height, width;
public MainPage()
{
InitializeComponent();
//original values of the slider
start = slider.Minimum;
end = slider.Maximum;
//original height and width of the image
height = img.Height;
width = img.Width;
}
private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
//if slider has reached the beginning
if (e.NewValue == start)
{
img.Height = height;
img.Width = width;
}
//if slider has moved forward
if (e.NewValue > e.OldValue)
{
img.Height = height + e.NewValue;
img.Width = width + e.NewValue;
}
else //if slider has moved backward
{
img.Height = img.Height - (e.OldValue - e.NewValue);
img.Width = img.Width - (e.OldValue - e.NewValue);
}
}
}


