Update: The source codes and the information in this article are compatible with Silverlight 2 Beta 2.
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 CalendarButtonBase class also derives from the ButtonBase class, but it is used as a base class for buttons in the Calendar and isn’t a standalone control. The ToggleButton is a base class for the CheckBox and RadioButton controls but it can also be used as a standalone control.
Update:
The CalendarButtonBase class can't be seen in MSDN as a descendant of the ButtonBase class any more so may be it is removed in Beta 2. Look here: http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.buttonbase(VS.95).aspx
Additionally there are two descendants of the Button class named CalendarButton and DayButton. Look here: http://msdn.microsoft.com/en-us/library/system.windows.controls.button(VS.95).aspx
What a mess, everything changes from release to release :)
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:
Update: The namespaces in Silverlight 2 beta 2 are changed:
<UserControl x:Class="TestButton.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="200" Height="100">
<UserControl x:Class="TestButton.Page"
xmlns="http://schemas.microsoft.com/client/2007"
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.
Update: This property is removed in Beta 2. See here: Breaking Changes Between Beta 1 and Beta 2
The IsMouseOver property determines if the mouse pointer is over the control.
Update: This property is removed in Beta 2. See here: Breaking Changes Between Beta 1 and Beta 2
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 withthe new Silverlight 2 controls. Any comments are welcome.
Reference
http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.buttonbase(VS.95).aspx