Smrf.NodeXL.Visualization.Wpf.NodeXLControl.VertexToolTipTracker_ShowToolTip C# (CSharp) Method

VertexToolTipTracker_ShowToolTip() private method

private VertexToolTipTracker_ShowToolTip ( Object oSource, ToolTipTrackerEventArgs oToolTipTrackerEventArgs ) : void
oSource Object
oToolTipTrackerEventArgs Smrf.GraphicsLib.ToolTipTrackerEventArgs
return void
    VertexToolTipTracker_ShowToolTip
    (
        Object oSource,
        ToolTipTrackerEventArgs oToolTipTrackerEventArgs
    )
    {
        AssertValid();

        // Get the vertex that was hovered over.

        Debug.Assert(oToolTipTrackerEventArgs.Object is IVertex);

        IVertex oVertex = (IVertex)oToolTipTrackerEventArgs.Object;

        // Fire a VertexMouseHover event in case the application wants to take
        // additional action.

        FireVertexMouseHover(oVertex);

        if (!m_bShowVertexToolTips)
        {
            // Vertex tooltips aren't being shown, so no additional action is
            // required.

            return;
        }

        // Give PreviewVertexToolTipShown event handlers an opportunity to
        // override the default tooltip.

        VertexToolTipShownEventArgs oVertexToolTipShownEventArgs =
            new VertexToolTipShownEventArgs(oVertex);

        FirePreviewVertexToolTipShown(oVertexToolTipShownEventArgs);

        m_oVertexToolTip = oVertexToolTipShownEventArgs.VertexToolTip;

        if (m_oVertexToolTip == null)
        {
            // There was no default tooltip override.  Does the vertex have a
            // tooltip string stored in its metadata?

            Object oVertexToolTipAsObject;

            if ( !oVertex.TryGetValue(ReservedMetadataKeys.PerVertexToolTip,
                typeof(String), out oVertexToolTipAsObject) )
            {
                // No.  Nothing needs to be done.

                return;
            }

            // Create a default tooltip.

            m_oVertexToolTip = CreateDefaultVertexToolTip(
                (String)oVertexToolTipAsObject);
        }

        // The tooltip shouldn't zoom.  Compensate for a zoomed graph by
        // scaling the tooltip with the graph zoom's inverse.

        Double dScale = 1.0 / this.ScaleTransformForRender.ScaleX;
        m_oVertexToolTip.RenderTransform = new ScaleTransform(dScale, dScale);

        m_oGraphDrawer.AddVisualOnTopOfGraph(m_oVertexToolTip);

        // If this isn't called, MeasureOverride() may not be called and
        // m_oVertexToolTip won't get sized.

        this.InvalidateMeasure();
    }
NodeXLControl