You can make the following changes to the old SDK sample: http://help.arcgis.com/en/webapi/silverlight/2.2/samples/start.htm#ToolBarWidgetUse Image.Tag and MouseLeftButtonDown. Declare _previousExtentImage and _nextExtentImage in XAML instead.
<StackPanel Orientation="Horizontal">
<Image Source="/Assets/images/i_zoomin.png" Stretch="UniformToFill" Margin="5" Tag="zoomin" MouseLeftButtonDown="Image_MouseLeftButtonDown"/>
<Image Source="/Assets/images/i_zoomout.png" Stretch="UniformToFill" Margin="5" Tag="zoomout" MouseLeftButtonDown="Image_MouseLeftButtonDown"/>
<Image Source="/Assets/images/i_pan.png" Stretch="UniformToFill" Margin="5" Tag="pan" MouseLeftButtonDown="Image_MouseLeftButtonDown"/>
<Image x:Name="_previousExtentImage" Source="/Assets/images/i_previous.png" IsHitTestVisible="False" Opacity="0.3" Stretch="UniformToFill" Margin="5" Tag="previousextent" MouseLeftButtonDown="Image_MouseLeftButtonDown"/>
<Image x:Name="_nextExtentImage" Source="/Assets/images/i_next.png" IsHitTestVisible="False" Opacity="0.3" Stretch="UniformToFill" Margin="5" Tag="nextextent" MouseLeftButtonDown="Image_MouseLeftButtonDown"/>
<Image Source="/Assets/images/i_globe.png" Stretch="UniformToFill" Margin="5" Tag="fullextent" MouseLeftButtonDown="Image_MouseLeftButtonDown"/>
<Image Source="/Assets/images/i_widget.png" Stretch="UniformToFill" Margin="5" Tag="fullscreen" MouseLeftButtonDown="Image_MouseLeftButtonDown"/>
</StackPanel>
private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
_toolMode = (sender as Image).Tag.ToString();
StatusTextBlock.Text = _toolMode;
MyDrawObject.IsEnabled = false;
switch (_toolMode)
{
case "zoomin": // ZoomIn Layers
MyDrawObject.IsEnabled = true;
_toolMode = "zoomin";
break;
case "zoomout": // Zoom Out
MyDrawObject.IsEnabled = true;
_toolMode = "zoomout";
break;
case"pan": // Pan
break;
case "previousextent": // Previous Extent
if (_currentExtentIndex != 0)
{
_currentExtentIndex--;
if (_currentExtentIndex == 0)
{
_previousExtentImage.Opacity = 0.3;
_previousExtentImage.IsHitTestVisible = false;
}
_newExtent = false;
MyMap.IsHitTestVisible = false;
MyMap.ZoomTo(_extentHistory[_currentExtentIndex]);
if (_nextExtentImage.IsHitTestVisible == false)
{
_nextExtentImage.Opacity = 1;
_nextExtentImage.IsHitTestVisible = true;
}
}
break;
case "nextextent": // Next Extent
if (_currentExtentIndex < _extentHistory.Count - 1)
{
_currentExtentIndex++;
if (_currentExtentIndex == (_extentHistory.Count - 1))
{
_nextExtentImage.Opacity = 0.3;
_nextExtentImage.IsHitTestVisible = false;
}
_newExtent = false;
MyMap.IsHitTestVisible = false;
MyMap.ZoomTo(_extentHistory[_currentExtentIndex]);
if (_previousExtentImage.IsHitTestVisible == false)
{
_previousExtentImage.Opacity = 1;
_previousExtentImage.IsHitTestVisible = true;
}
}
break;
case "fullextent": // Full Extent
MyMap.ZoomTo(MyMap.Layers.GetFullExtent());
break;
case "fullscreen": // Full Screen
Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen;
break;
}
}