private void ActiveViewEventsOnAfterDraw(IDisplay display, esriViewDrawPhase phase) { if (!_drawFence) { return; } if (_fenceArray == null || _fenceArray.Count == 0) { return; } IScreenDisplay paramScreenDisplay = ((IActiveView)_context.FocusMap).ScreenDisplay; paramScreenDisplay.StartDrawing(paramScreenDisplay.hDC, -2); for (int i = 0; i < _fenceArray.Count; i++) { IGeometry fence = _fenceArray.Element[i]; if (fence.IsEmpty) { continue; } if (fence is IPolyline) { paramScreenDisplay.SetSymbol(_lineSymbol); paramScreenDisplay.DrawPolyline(fence); } else if (fence is IPolygon) { paramScreenDisplay.SetSymbol(_fillSymbol); paramScreenDisplay.DrawPolygon(fence); } } if (_drawPage && _pageInfos != null && _pageInfos.Count > 0) { IFontDisp disp = new StdFont() as IFontDisp; disp.Name = "Arial"; disp.Size = new decimal(16); foreach (IPrintPageInfo pageInfo in _pageInfos) { IGeometry pageBoundary = pageInfo.Boundary; paramScreenDisplay.SetSymbol(_fillSymbol); paramScreenDisplay.DrawPolygon(pageBoundary); _textSymbol = SymbolHelper.CreateTextSymbol(Color.Red, disp, 16, pageInfo.PageName); paramScreenDisplay.SetSymbol(_textSymbol as ISymbol); if (!string.IsNullOrEmpty(pageInfo.PageName)) { IPoint centerPoint = new ESRI.ArcGIS.Geometry.Point(); IEnvelope pEnv = pageBoundary.Envelope; centerPoint.PutCoords((pEnv.XMin + pEnv.Width / 2.0), pEnv.YMin + pEnv.Height / 2.0); paramScreenDisplay.DrawText(centerPoint, pageInfo.PageName); } } } paramScreenDisplay.FinishDrawing(); }
public static void DrawText(IScreenDisplay paramScreenDisplay, IGeometry paramGeom, string paramText, ISymbol paramSymbol) { if ((paramScreenDisplay == null || paramGeom == null || paramGeom.IsEmpty || paramSymbol == null ? false : paramSymbol is ITextSymbol)) { paramScreenDisplay.StartDrawing(paramScreenDisplay.hDC, -2); paramScreenDisplay.UpdateWindow(); paramScreenDisplay.SetSymbol(paramSymbol); if (paramText == null) { paramText = ""; } paramScreenDisplay.DrawText(paramGeom, paramText); paramScreenDisplay.FinishDrawing(); } }