private static void SetIconAndRaiseEvent(SwitcherMode mode, SwitcherPanZoomBarMapTool zoomBar)
        {
            switch (mode)
            {
            case SwitcherMode.Pan:
                zoomBar.OperationImageSource = new BitmapImage(new Uri(pan, UriKind.RelativeOrAbsolute));
                break;

            case SwitcherMode.TrackZoom:
                zoomBar.OperationImageSource = new BitmapImage(new Uri(trackZoom, UriKind.RelativeOrAbsolute));
                break;

            case SwitcherMode.Identify:
                zoomBar.OperationImageSource = new BitmapImage(new Uri(identify, UriKind.RelativeOrAbsolute));
                break;

            case SwitcherMode.None:
            default:
                zoomBar.OperationImageSource = new BitmapImage(new Uri(noselect, UriKind.RelativeOrAbsolute));
                break;
            }

            if (!zoomBar.DisableModeChangedEvent)
            {
                zoomBar.OnSwitcherModeChanged(mode);
            }
        }
        private static void SwitcherModePropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
        {
            var newMode = (SwitcherMode)e.NewValue;
            SwitcherPanZoomBarMapTool zoomBar = sender as SwitcherPanZoomBarMapTool;

            if (zoomBar != null)
            {
                SetIconAndRaiseEvent(newMode, zoomBar);
            }
        }