private void LoadPrintPage(IPrintPageInfo pageInfo) { if (_template == null) { return; } //因为前面的操作可能对Template有赋值,因此,在将参数付过去之前需要进行初始化 _template.Load(); //! 首先将PageInfo里面的属性值赋给 template foreach (MapTemplateParam param in _template.MapTemplateParam) { string paramName = param.Name; IPrintPageElement element = pageInfo.AutoElements.FirstOrDefault(c => c.Name == param.Name || c.AliasName == param.Name); if (element == null) { continue; } switch (param.ParamDataType) { case DataType.Boolean: param.Value = Convert.ToBoolean(element.Value); break; case DataType.DateTime: param.Value = Convert.ToDateTime(element.Value); break; case DataType.Interger: param.Value = Convert.ToInt32(element.Value); break; case DataType.Float: param.Value = Convert.ToDouble(element.Value); break; case DataType.String: param.Value = element.Value; break; default: throw new ArgumentOutOfRangeException(); } } _layoutControl = _context.MainView.PageLayoutControl; this.DeleteAllElements(this._layoutControl.ActiveView); ((_layoutControl.ActiveView as IActiveView).FocusMap as IMapClipOptions).ClipType = esriMapClipType.esriMapClipNone; if ((_layoutControl.ActiveView as IActiveView).FocusMap is IMapAutoExtentOptions) { ((_layoutControl.ActiveView as IActiveView).FocusMap as IMapAutoExtentOptions).AutoExtentType = esriExtentTypeEnum.esriExtentDefault; } IEnvelope extent = pageInfo.Boundary.Envelope; MessageService.Current.Info(string.Format("{0},{1},{2},{3}", extent.XMin, extent.YMin, extent.XMax, extent.YMax)); if (_template.MapFramingType == MapFramingType.StandardFraming) { _template.CreateTKN(_layoutControl.ActiveView as IActiveView, extent.LowerLeft); } else { _template.CreateTKByRect2(_layoutControl.ActiveView as IActiveView, extent); } (_layoutControl.ActiveView as IGraphicsContainerSelect).UnselectAllElements(); }
internal PageInfoWrap(IPrintPageInfo page) { this.pageInfo = page; }