internal virtual void UpdateLabelLayout(bool force = false)
        {
            EdgeLabelControl.Show();
            if (EdgeLabelControl.GetSize() == SysRect.Empty || force)

            {
                EdgeLabelControl.UpdateLayout();
                EdgeLabelControl.UpdatePosition();
            }
        }
 /// <summary>
 /// Complete edge update pass. Don't needed to be run manualy until some edge related modifications are done requiring full edge update.
 /// </summary>
 /// <param name="updateLabel">Update label data</param>
 public virtual void UpdateEdge(bool updateLabel = true)
 {
     if (Visibility == Visibility.Visible || IsHiddenEdgesUpdated)
     {
         //first show label to get DesiredSize
         if (EdgeLabelControl != null)
         {
             if (ShowLabel)
             {
                 EdgeLabelControl.Show();
             }
             else
             {
                 EdgeLabelControl.Hide();
             }
         }
         UpdateEdgeRendering(updateLabel);
     }
 }