public MapControlToolTipService(MapControl mapControl, TileView tileView)
        {
            m_mapControl = mapControl;
            m_hoverTileView = tileView;

            m_content = new TileToolTipControl();
            m_content.DataContext = m_hoverTileView;

            var popup = new ToolTip();
            popup.Content = m_content;
            popup.Placement = System.Windows.Controls.Primitives.PlacementMode.Right;
            popup.HorizontalOffset = 4;
            popup.PlacementTarget = m_mapControl;
            m_popup = popup;

            // Disable the animations, because we lose datacontext during fade-out animation.
            // We need to override the default values in the PlacementTarget control
            m_mapControl.Resources.Add(SystemParameters.ToolTipAnimationKey, false);
            m_mapControl.Resources.Add(SystemParameters.ToolTipFadeKey, false);
            m_mapControl.Resources.Add(SystemParameters.ToolTipPopupAnimationKey, PopupAnimation.None);
        }
        public MapControlElementsService(MapControl mapControl, Canvas canvas)
        {
            m_mapControl = mapControl;
            m_canvas = canvas;

            m_scaleTransform = new ScaleTransform();
            m_translateTransform = new TranslateTransform();

            var group = new TransformGroup();
            group.Children.Add(m_scaleTransform);
            group.Children.Add(m_translateTransform);
            m_canvas.RenderTransform = group;

            m_elementMap = new Dictionary<IAreaElement, FrameworkElement>();

            m_mapControl.EnvironmentChanged += OnEnvironmentChanged;
            m_mapControl.TileLayoutChanged += OnTileLayoutChanged;
            m_mapControl.ZChanged += OnZChanged;

            OnEnvironmentChanged(m_mapControl.Environment);
        }