Introduction
In this article we will use the Repeat button control of XAML in a Metro style application. The concept behind the Repeat button is that we can do a click event multiple times as needed and each time we do, it performs the associated action.
Here we used two repeat buttons, Grow and Shrink and we use a rectangle control. On a click event of the buttons the height and width of the rectangle will be changed, no matter how many times you click on the button. It has no limitation.
Step 1 : First, you will create a new Metro Style Application. Let us see the description with images of how you will create it.
- Open Visual Studio 2011
- File -> New -> Project
- Choose Template -> Visual C# ->Metro Style Application
- Rename the application
![img1.gif]()
Step 2 : In the Solution Explorer there are two files that we will primarily work with; the BlankPage.xaml and BlankPage.xaml.cs files.
![img2.gif]()
Step 3 : The BlankPage.xaml file is as in the following code:
Code :
<Page
    x:Class="Application7.BlankPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Application7"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
 
    <Grid Name="LayoutRoot" Background="BlueViolet">
        <Grid.RowDefinitions>
            <RowDefinition Height="0.033*"/>
            <RowDefinition Height="0.033*"/>
            <RowDefinition Height="0.333*"/>
        </Grid.RowDefinitions>
        <TextBlock Text="Repeat Button in Metro Style Apps" Grid.Row="0"
                   FontSize="40" HorizontalAlignment="Center"
                   VerticalAlignment="Center">
        </TextBlock>
        <RepeatButton Margin="10,10,0,0" VerticalAlignment="Top"
                      HorizontalAlignment="Center"                      
                      Name="GrowButton"  Width="80" Height="50"
                      Delay="500" Interval="100"
                      Click="GrowButton_Click" Grid.Row="1"
                      Background="Red">
            Grow
        </RepeatButton>
        <RepeatButton Margin="200,10,0,0" VerticalAlignment="Top"
                      HorizontalAlignment="Center"                      
                      Name="ShrinkButton"  Width="80" Height="50"
                      Delay="500" Interval="100"
                      Click="ShrinkButton_Click" Grid.Row="1"
                      Background="Green">
            Shrink
        </RepeatButton>
 
        <Rectangle Name="Rect" Height="200" Width="200" Fill="Blue"
                   Grid.Row="2" HorizontalAlignment="Center"
                   VerticalAlignment="Top" Margin="100,100,0,0">
        </Rectangle>
     </Grid>
</Page>
Step 4 : The BlankPage.xaml.cs file is as in the following code:
Code :
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml.Linq;
using System.Text;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
 
namespace Application7
{
    public sealed partial class BlankPage : Page
    {
        public BlankPage()
        {
            this.InitializeComponent();
            
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
        }
        private void GrowButton_Click(object sender, RoutedEventArgs e)
        {
            Rect.Width += 10;
            Rect.Height += 10;
        }
        private void ShrinkButton_Click(object sender, RoutedEventArgs e)
        {
            Rect.Width -= 10;
            Rect.Height -= 10;
        }
    }
}
Step 5 : After running this code the output looks like this:
![img3.gif]()
Clink on the Grow button; we can increase the size as we want.
![img4.gif]()
Click on the Shrink button; we can decrease the size as much as we want.
![img5.gif]()