ARTICLE

Programmatically Trigger Events of a Control in Silverlight

Posted by Dinesh Beniwal Articles | Silverlight using VB.NET January 23, 2009
This article shows you how to fire the click event of a Button control programmatically in Silverlight 2.0.
Reader Level:

There are occasions when you need to fire controls events programmatically. This article shows you how to fire the click event of a Button control programmatically in Silverlight 2.0.

We have a Silverlight page with two buttons and a text box as you can see in Figure 1. When we mouse move on the Click Me button, we will fire the click event of the button and write some text in the text box. The Clear button simply clears the content of the text box.

EventTriggerImg1.jpg

Figure 1.

The mouse move over the Click Me button changes the text of the text box as Figure 2.

EventTriggerImg2.jpg

Figure 2.

Step 1. Create a Silverlight application using Visual Studio 2008.

Note: If you are new to Silverlight and don't know how to create a Silverlight application using Visual Studio 2008, Click here to learn Silverlight.

Step 2. Add two Button and a TextBox controls to the XAML page and add Click and MouseMove event handlers for the first button and Click event handler for the second button. Here is the XAML code for all three controls.  

<Button Click="ClickButton_Click" MouseMove="ClickButton_MouseMove"

                        x:Name="ClickButton" Margin="10,10,10,10" Height="30" Width="100"

                        Content="Click Me"></Button>

<TextBox x:Name="TextBox1" Height="30" Width="200"></TextBox>

<Button  x:Name="ClearButton" Margin="10,10,10,10" Height="30" Width="60"

                        Content="Clear" Click="ClearButton_Click"></Button>

Step 3. Add support to Automation namespaces to the code behind file by adding namespace references to the following two namespaces.

' Add these two namespaces for the Automation support

Imports System.Windows.Automation.Peers
Imports System.Windows.Automation.Provider
 

Step 4. Now add code for the Button click and mouse move event handlers. The final code looks like following.  The key code is in ClickButton_MouseMove event handler below that creates a ButtonAutomationPeer object by passing the ClickButton ID and later calls the Invoke method of the InvokeProvider.

        '/ <summary>
        '/ ButtonMouseMove event handler for the button. On MouseMove, we will 
        '/ invoke ButtonClick event
        '/ </summary>
        '/ <param name="sender"></param>
        '/ <param name="e"></param>
        Private Sub ClickButton_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
            ' Create a ButtonAutomationPeer using the ClickButton
            Dim buttonAutoPeer As ButtonAutomationPeer = New ButtonAutomationPeer(ClickButton)
            ' Create an InvokeProvider
        IInvokeProvider invokeProvider = buttonAutoPeer.GetPatternCType(as IInvokeProvider, PatternInterface.Invoke)
            ' Invoke the default event, which is click for the button
            invokeProvider.Invoke()

        End Sub
 
        '/ <summary>
        '/ Button click event handler
        '/ </summary>
        '/ <param name="sender"></param>
        '/ <param name="e"></param>
        Private Sub ClickButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
            TextBox1.Text = "Button Clicked"
        End Sub

        Private Sub ClearButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
            TextBox1.Text = String.Empty
        End Sub

share this article :
post comment
 
Team Foundation Server Hosting
Become a Sponsor
PREMIUM SPONSORS
  • The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
    Get 2 Months Free of ASP.NET Hosting for Only $4.95/month! Receive FREE MS SQL and MySQL Databases Including ASP.NET 4/3.5, MVC 3.0, Silverlight 4, Windows 2008/IIS 7.0 Plus FREE IIS 7 Modules. Host UNLIMITED ASP.NET Web Sites - Click Here!
6 Months Free & No Setup Fees ASP.NET Hosting!
Become a Sponsor