예제 #1
0
        void ArrangePictures()
        {
            if (_cachedPictures.Count == 0)
            {
                return;
            }

            FloatingObjectLayoutModel viewportFloatingObjectLayoutModel = ParentViewport.Excel.GetViewportFloatingObjectLayoutModel(RowViewportIndex, ColumnViewportIndex);

            foreach (PictureContainer container in _cachedPictures.Values)
            {
                FloatingObject       floatingObject = container.FloatingObject;
                Point                location       = new Point(0.0, 0.0);
                Size                 size           = new Size(0.0, 0.0);
                FloatingObjectLayout layout         = viewportFloatingObjectLayoutModel.Find(floatingObject.Name);
                if (layout != null)
                {
                    double num  = 7.0;
                    double num2 = 1.0;
                    location = new Point(((layout.X - Location.X) - num) - num2, ((layout.Y - Location.Y) - num) - num2);
                    size     = new Size(layout.Width + (2.0 * num), layout.Height + (2.0 * num));
                }
#if !IOS
                container.InvalidateArrange();
#endif
                container.Arrange(new Rect(location, size));
            }
        }
예제 #2
0
        void MeasurePictures()
        {
            var pictures = ActiveSheet.Pictures;

            if (pictures.Count == 0)
            {
                if (_cachedPictures.Count > 0)
                {
                    _cachedPictures.Clear();
                }
                return;
            }

            var oldPics = _cachedPictures;

            _cachedPictures = new Dictionary <string, PictureContainer>();
            FloatingObjectLayoutModel viewportFloatingObjectLayoutModel = ParentViewport.Excel.GetViewportFloatingObjectLayoutModel(RowViewportIndex, ColumnViewportIndex);

            for (int i = 0; i < pictures.Count; i++)
            {
                PictureContainer container;
                Picture          picture = pictures[i];
                if (!oldPics.TryGetValue(picture.Name, out container))
                {
                    container = new PictureContainer(picture, ParentViewport);
                    int maxZIndex = GetMaxZIndex();
                    Canvas.SetZIndex(container, maxZIndex + 1);
                    Children.Add(container);
                }
                else
                {
                    oldPics.Remove(picture.Name);
                }
                _cachedPictures.Add(picture.Name, container);

                Size empty = _szEmpty;
                FloatingObjectLayout layout = viewportFloatingObjectLayoutModel.Find(picture.Name);
                if (layout != null)
                {
                    double num3 = 7.0;
                    empty = new Size(layout.Width + (2.0 * num3), layout.Height + (2.0 * num3));
                }

#if !IOS
                container.InvalidateMeasure();
#endif
                container.Measure(empty);
            }

            if (oldPics.Count > 0)
            {
                foreach (var item in oldPics)
                {
                    Children.Remove(item.Value);
                }
            }
        }
예제 #3
0
        void MeasureCharts()
        {
            var charts = ActiveSheet.Charts;

            if (charts.Count == 0)
            {
                if (_cachedCharts.Count > 0)
                {
                    _cachedCharts.Clear();
                }
                return;
            }

            var oldCharts = _cachedCharts;

            _cachedCharts = new Dictionary <string, SpreadChartContainer>();
            FloatingObjectLayoutModel layoutModel = ParentViewport.Excel.GetViewportFloatingObjectLayoutModel(RowViewportIndex, ColumnViewportIndex);

            for (int i = 0; i < charts.Count; i++)
            {
                SpreadChartContainer container;
                SpreadChart          chart = charts[i];
                if (!oldCharts.TryGetValue(chart.Name, out container))
                {
                    container = new SpreadChartContainer(chart, new Chart(), ParentViewport);
                    int maxZIndex = GetMaxZIndex();
                    Canvas.SetZIndex(container, maxZIndex + 1);
                    Children.Add(container);
                }
                else
                {
                    oldCharts.Remove(chart.Name);
                }
                _cachedCharts.Add(chart.Name, container);

                Size size = _szEmpty;
                FloatingObjectLayout layout = layoutModel.Find(chart.Name);
                if (layout != null)
                {
                    double num3 = 7.0;
                    size = new Size(layout.Width + (2.0 * num3), layout.Height + (2.0 * num3));
                }
#if !IOS
                container.InvalidateMeasure();
#endif
                container.Measure(size);
            }

            if (oldCharts.Count > 0)
            {
                foreach (var item in oldCharts)
                {
                    Children.Remove(item.Value);
                }
            }
        }
예제 #4
0
 internal FloatingObjectLayoutModel(FloatingObjectLayoutModel model)
 {
     if ((model != null) && (model.Count > 0))
     {
         _items = new Dictionary <string, FloatingObjectLayout>();
         foreach (FloatingObjectLayout layout in model)
         {
             _items.Add(layout.Name, new FloatingObjectLayout(layout.Name, layout.X, layout.Y, layout.Width, layout.Height));
         }
     }
 }
예제 #5
0
        void MeasureFloatingObjects()
        {
            var floatingObjects = ActiveSheet.FloatingObjects;

            if (floatingObjects.Count == 0)
            {
                if (_cachedFloatingObjects.Count > 0)
                {
                    _cachedFloatingObjects.Clear();
                }
                return;
            }

            var oldObjects = _cachedFloatingObjects;

            _cachedFloatingObjects = new Dictionary <string, FloatingObjectContainer>();
            FloatingObjectLayoutModel viewportFloatingObjectLayoutModel = ParentViewport.Excel.GetViewportFloatingObjectLayoutModel(RowViewportIndex, ColumnViewportIndex);

            for (int i = 0; i < floatingObjects.Count; i++)
            {
                FloatingObjectContainer container;
                FloatingObject          floatingObject = floatingObjects[i];
                if (!oldObjects.TryGetValue(floatingObject.Name, out container))
                {
                    FrameworkElement content = null;
                    if (floatingObject is CustomFloatingObject)
                    {
                        content = (floatingObject as CustomFloatingObject).Content;
                    }
                    container = new FloatingObjectContainer(floatingObject, ParentViewport);
                    if (content != null)
                    {
                        container.Content = content;
                    }
                    int maxZIndex = GetMaxZIndex();
                    Canvas.SetZIndex(container, maxZIndex + 1);
                    Children.Add(container);
                }
                else
                {
                    oldObjects.Remove(floatingObject.Name);
                }
                _cachedFloatingObjects.Add(floatingObject.Name, container);

                Size empty = _szEmpty;
                FloatingObjectLayout layout = viewportFloatingObjectLayoutModel.Find(floatingObject.Name);
                if (layout != null)
                {
                    double num3 = 7.0;
                    empty = new Size(layout.Width + (2.0 * num3), layout.Height + (2.0 * num3));
                }
#if !IOS
                container.InvalidateMeasure();
#endif
                container.Measure(empty);
            }

            if (oldObjects.Count > 0)
            {
                foreach (var item in oldObjects)
                {
                    Children.Remove(item.Value);
                }
            }
        }