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; }
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); }