Exemplo n.º 1
0
        public void RegistRelatedPanel(EcosystemControl relatedPanel)
        {
            this.relatedPanel = relatedPanel;

            relatedPanel.Visibility = Visibility.Hidden;
            relatedPanel.Hide();

            //контролируем родительский элемент (hud ноды) если он начнем перемещатся по экосистеме
            //перерисуем соединительную линию
            (parentOWLOSThingControl.parentControl.Parent as Grid).Children.Add(relatedPanel);


            //создаем и настраиваем соеденительную линию
            //relationLine = new EcosystemRelationLine(relatedPanel, relatedPanel, connector, driverCountrol, parentOWLOSThingControl.parentControl.Parent as Grid);
            relationLine = new EcosystemRelationLine(relatedPanel, relatedPanel, connector, relatedPanel, parentOWLOSThingControl.parentControl.Parent as Grid);


            petalBackground.PreviewMouseLeftButtonDown += petalBackground_PreviewMouseLeftButtonDown;

            relatedPanel.OnShow  += ParentControl_OnShow;
            relatedPanel.OnHiden += ParentControl_OnHiden;

            relatedPanel.OnWindow    += RelatedPanel_OnWindow;
            relatedPanel.OnEcosystem += RelatedPanel_OnEcosystem;
        }
Exemplo n.º 2
0
        public OWLOSPetalControl(OWLOSThingControl parentOWLOSThingControl, double radius, double angel, double length, double width)
        {
            InitializeComponent();

            this.parentOWLOSThingControl = parentOWLOSThingControl;
            this.radius = radius;
            this.angel  = angel;
            this.length = length;

            parentOWLOSThingControl.parentControl.OnPositionChanged += ParentControl_OnPositionChanged;

            double startAngel = 0;

            petalBackground.Data            = HudLibrary.DrawArc(Gold.center, Gold.center, radius, startAngel, length);
            petalBackground.StrokeThickness = width;
            petalBorder1.Data = HudLibrary.DrawArc(Gold.center, Gold.center, radius + width / 2, startAngel, length);
            petalBorder2.Data = HudLibrary.DrawArc(Gold.center, Gold.center, radius - width / 2, startAngel, length);

            //подготавливаем конектор - элементы экосистемы могут соединятся друг с другом, в данном случае
            //одна нода имеет множество присоединеных драйверов. По этой причине нужно инкапсулировать много элементов
            //для соединеня
            connector = new EcosystemControl(null);
            connector.MoveTransform(0, 0);
            connector.Width  = 10;
            connector.Height = 10;
            connector.HorizontalAlignment = HorizontalAlignment.Center;
            connector.VerticalAlignment   = VerticalAlignment.Top;
            connector.Margin = new Thickness(0, 0, 0, 0);
            connector.MoveTransform(0, 330 - radius);


            Ellipse elipse = new Ellipse
            {
                Width  = 10,
                Height = 10,
                Fill   = (SolidColorBrush)App.Current.Resources["OWLOSWarning"]
            };

            connector.childHolderGrid.Children.Add(elipse);

            petalMainGrid.Children.Add(connector);
        }