public override void OnClick() { frmInputText frmInputText = new frmInputText(); if (frmInputText.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string text = frmInputText.txtText.Text; IElement element = new TextElement(); ITextElement textElement = element as ITextElement; ITextSymbol textSymbol = new TextSymbol(); textSymbol.Text = text; textSymbol.Size = 48.0; IActiveView activeView = this._context.ActiveView as IActiveView; activeView.ScreenDisplay.StartDrawing(0, 0); double num; double num2; textSymbol.GetTextSize(activeView.ScreenDisplay.WindowDC, activeView.ScreenDisplay.DisplayTransformation, text, out num, out num2); activeView.ScreenDisplay.FinishDrawing(); textSymbol.Text = text; num *= 0.0353; num2 *= 0.0353; IEnvelope extent = (this._context.ActiveView as IActiveView).Extent; double num3; double num4; double num5; double num6; extent.QueryCoords(out num3, out num4, out num5, out num6); num3 = (num3 + num5) / 2.0; num4 = num6 - 3.0; num5 = num3 + 1.2 * num; num6 = num4 + 1.2 * num2; num3 = (double)((int)num3); num4 = (double)((int)num4); num5 = (double)((int)num5); num6 = (double)((int)num6); extent.PutCoords(num3, num4, num5, num6); textElement.Symbol = textSymbol; textElement.Text = text; IPoint point = new ESRI.ArcGIS.Geometry.Point(); point.PutCoords(num3, num4); element.Geometry = point; IGraphicsContainer arg_181_0 = activeView.GraphicsContainer; (element as IElementProperties2).AutoTransform = true; INewElementOperation operation = new NewElementOperation { ActiveView = this._context.ActiveView, Element = element }; this._context.OperationStack.Do(operation); } }
public void GetTextSize(int hDC, ITransformation Transformation, string Text, out double xSize, out double ySize) { xSize = 0; ySize = 0; double num = 0; double num1 = 0; double num2 = 0; double num3 = 0; ITextSymbol textSymbolClass = new TextSymbol() { Text = this.m_DenominatorText }; textSymbolClass.GetTextSize(hDC, Transformation, Text, out num, out num1); textSymbolClass = new TextSymbol() { Text = this.m_NumeratorText }; textSymbolClass.GetTextSize(hDC, Transformation, Text, out num2, out num3); xSize = num + num2 + 6; ySize = num1 + num3 + 6; }