TryDrawGroupLabels
(
IGraph graph,
GraphDrawingContext graphDrawingContext,
out Visual visual
)
{
Debug.Assert(graph != null);
Debug.Assert(graphDrawingContext != null);
AssertValid();
visual = null;
GroupLayoutDrawingInfo oGroupLayoutDrawingInfo;
if (
m_eLabelPosition == VertexLabelPosition.Nowhere
||
!GroupMetadataManager.TryGetGroupLayoutDrawingInfo(graph,
out oGroupLayoutDrawingInfo)
)
{
return (false);
}
DrawingVisual oGroupLabelDrawingVisual = new DrawingVisual();
using ( DrawingContext oDrawingContext =
oGroupLabelDrawingVisual.RenderOpen() )
{
foreach (GroupInfo oGroupInfo in
oGroupLayoutDrawingInfo.GroupsToDraw)
{
DrawGroupLabel(oDrawingContext, graphDrawingContext,
oGroupInfo);
}
}
visual = oGroupLabelDrawingVisual;
return (true);
}