source: trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/ModifiedCanvas/ModifiedCanvas.cs @ 3038

Last change on this file since 3038 was 3038, checked in by matkovic, 11 years ago

several changes...fixes #214 and #215 and #217 and #220 and #221 and #223

override-bad-extension: WPFToolkit.Extended.dll

File size: 1.9 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Windows.Controls;
6using System.Windows;
7using System.Windows.Media;
8using WorkspaceManager.View.BinVisual;
9
10namespace WorkspaceManager.View.VisualComponents
11{
12    public class ModifiedCanvas : Canvas
13    {
14        protected override Size MeasureOverride(Size constraint)
15        {
16            Size availableSize = new Size(double.PositiveInfinity, double.PositiveInfinity);
17            double maxHeight = 0;
18            double maxWidth = 0;
19            double left;
20            double top;
21
22            foreach (UIElement element in base.InternalChildren)
23            {
24                if (element != null)
25                {
26                    element.Measure(availableSize);
27                    if (element is BinComponentVisual)
28                    {
29                        BinComponentVisual b = (BinComponentVisual)element;
30                        left = b.Position.X;
31                        top = b.Position.Y;
32                        left += element.DesiredSize.Width;
33                        top += element.DesiredSize.Height;
34
35                        maxWidth = maxWidth < left ? left : maxWidth;
36                        maxHeight = maxHeight < top ? top : maxHeight;
37                    }
38                    else
39                    {
40                        if (element is CryptoLineView)
41                            Canvas.SetZIndex(element, -1);
42                        left = element.DesiredSize.Width;
43                        top = element.DesiredSize.Height;
44                        maxWidth = maxWidth < left ? left : maxWidth;
45                        maxHeight = maxHeight < top ? top : maxHeight;
46                    }
47                }
48            }
49            return new Size { Height = maxHeight, Width = maxWidth };
50        }
51    }
52}
Note: See TracBrowser for help on using the repository browser.