This article is compatible with the latest version of Silverlight.
Introduction
Button controls are Silverlight controls which in the common scenario respond in some way to the user who is clicking on them. There are a lot of button controls: Button, HyperlinkButton, RepeatButton, ToggleButton, CheckBox, RadioButton.
See also:
Button Article
HyperlinkButton Article
ToggleButton Article
RepeatButton Article
Overview
Four button controls derive from the base ButtonBase class: Button, HyperlinkButton, RepeatButton, and ToggleButton. The ToggleButton is a base class for the CheckBox and RadioButton controls but it can also be used as a standalone control. There are two descendants of the Button class named CalendarButton and CalendarDayButton.
The most important member of the ButtonBase class is the Click event. It occurs when a user clicks on the button control. For example:
XAML:
<UserControl x:Class="ButtonControls.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="200" Height="100">
<Canvas x:Name="cnvLayoutRoot" Background="White">
<TextBlock x:Name="tblText" Canvas.Top="20" Canvas.Left="30" Text="Not clicked yet."></TextBlock>
<Button x:Name="btnTest" Canvas.Top="60" Canvas.Left="30" Click="btnTest_Click" Content="Click me!"></Button>
</Canvas>
</UserControl>
Code behind:
private void btnTest_Click( object sender, RoutedEventArgs e )
{
this.tblText.Text = "The button was clicked.";
}
We have a TextBlock and a Button. We specify the event handler for the Click event of the Button in the XAML and then write code in the code behind to respond to this event. In our example we change the Text of the TextBlock when the user clicks on the Button. It results in the following:
An interesting property is the ClickMode. When you set it to Release or omit it, the Click event occurs when you release the mouse button:
<Button ClickMode="Release" x:Name="btnTest" Canvas.Top="60" Canvas.Left="30" Click="btnTest_Click" Content="Click me!"></Button>
Setting this property to Press causes the event to occur immediately when you press the mouse button, for example:
<Button ClickMode="Press" x:Name="btnTest" Canvas.Top="60" Canvas.Left="30" Click="btnTest_Click" Content="Click me!"></Button>
Setting this property to Hover causes the event to occur when you move over the Button with the mouse:
<Button ClickMode="Hover" x:Name="btnTest" Canvas.Top="60" Canvas.Left="30" Click="btnTest_Click" Content="Click me!"></Button>
There are some other useful properties:
The IsFocused property gets a value indicating whether the control is focused.
The IsMouseOver property determines if the mouse pointer is over the control.
The IsPressed property indicates if the Button is currently pressed.
Conclusion
This article covers the key features of the ButtonBase class which are inherited in all button controls. It targets the developer who has just started with the Silverlight controls. Any comments are welcome.
Reference
http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.buttonbase(VS.95).aspx