Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
 internal PageInfoWrap(IPrintPageInfo page)
 {
     this.pageInfo = page;
 }