private bool Output_led_OnPinMouseDwon(QOutput_LED sender, CQPin pin, Point pt) { CQGateBaseUI gateui = sender.DataContext as CQGateBaseUI; this.m_Line = new Line(); this.m_Line.Fill = Brushes.Gray; this.m_Line.X1 = this.m_Line.X2 = pin.ConnectPoint.X; this.m_Line.Y1 = this.m_Line.Y2 = pin.ConnectPoint.Y; this.m_Line.Stroke = Brushes.Gray; this.m_Line.StrokeThickness = 1; this.m_IsConnect = true; CQSaveFile_Line save_line = new CQSaveFile_Line() { Line = this.m_Line }; if (this.m_LineDatas.ContainsKey(save_line.Line) == false) { this.m_LineDatas.Add(save_line.Line, save_line); } else { } this.m_LineDatas[this.m_Line].Begin.GateID = gateui.ID; this.m_LineDatas[this.m_Line].Begin.Index = pin.Index; this.m_LineDatas[this.m_Line].Begin.Type = pin.Type; this.m_LineDatas[this.m_Line].Begin.EndType = CQSaveFile_LinePoint.EndTypes.Start; this.canvas.Children.Add(this.m_Line); return(true); }
public bool RefreshLocation() { bool result = true; //List<CQPin> pin_in = new List<CQPin>(); //List<CQPin> pin_out = new List<CQPin>(); for (int i = 0; i < this.itemscontrol_in.Items.Count; i++) { ContentPresenter container = this.itemscontrol_in.ItemContainerGenerator.ContainerFromIndex(i) as ContentPresenter; container.ApplyTemplate(); FrameworkElement oo = container.ContentTemplate.FindName("rectangle", container) as FrameworkElement; CQPin pin = oo.DataContext as CQPin; this.GetPinLocation(pin, oo); //pin_in.Add(pin); } for (int i = 0; i < this.itemscontrol_out.Items.Count; i++) { ContentPresenter container = this.itemscontrol_out.ItemContainerGenerator.ContainerFromIndex(i) as ContentPresenter; container.ApplyTemplate(); FrameworkElement oo = container.ContentTemplate.FindName("rectangle", container) as FrameworkElement; CQPin pin = oo.DataContext as CQPin; this.GetPinLocation(pin, oo); //pin_out.Add(pin); } if (this.OnGateMove != null) { this.OnGateMove(this); } return(result); }
private void Rectangle_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { FrameworkElement rectangle = sender as FrameworkElement; CQPin pin = rectangle.DataContext as CQPin; this.GetPinLocation(pin, rectangle); if (this.OnPinMouseUp != null) { this.OnPinMouseUp(this, pin, new Point()); } e.Handled = true; }
private void Rectangle_MouseDown(object sender, MouseButtonEventArgs e) { Rectangle rectangle = sender as Rectangle; CQPin pin = rectangle.DataContext as CQPin; this.GetPinLocation(pin, rectangle); if (this.OnPinMouseDwon != null) { this.OnPinMouseDwon(this, pin, new Point()); } e.Handled = true; }
Point GetPinLocation(CQPin pin, FrameworkElement rectangle) { UIElement container = VisualTreeHelper.GetParent(this) as UIElement; Point relativeLocation = rectangle.TranslatePoint(new Point(0, 0), container); if (pin.Type == CQPin.Types.IN) { relativeLocation.X = relativeLocation.X; } else { relativeLocation.X = relativeLocation.X + rectangle.Width; } relativeLocation.Y = relativeLocation.Y + rectangle.Height / 2; pin.ConnectPoint = relativeLocation; return(relativeLocation); }
void ConnectEnd(FrameworkElement sender, CQPin pin, Point pt) { CQGateBaseUI gateui = sender.DataContext as CQGateBaseUI; this.m_Line.X2 = pin.ConnectPoint.X; this.m_Line.Y2 = pin.ConnectPoint.Y; this.m_LineDatas[this.m_Line].End.GateID = gateui.ID; this.m_LineDatas[this.m_Line].End.Index = pin.Index; this.m_LineDatas[this.m_Line].End.Type = pin.Type; this.m_LineDatas[this.m_Line].End.EndType = CQSaveFile_LinePoint.EndTypes.End; if (this.m_LineDatas[this.m_Line].Begin.Type == CQPin.Types.IN) { CQSaveFile_LinePoint pp1 = new CQSaveFile_LinePoint(this.m_LineDatas[this.m_Line].End); CQSaveFile_LinePoint pp2 = new CQSaveFile_LinePoint(this.m_LineDatas[this.m_Line].Begin); this.m_LineDatas[this.m_Line].Begin = pp1; this.m_LineDatas[this.m_Line].End = pp2; } this.m_IsConnect = false; }
private bool Ggate_OnPinMouseUp(QGate sender, CQPin pin, Point pt) { this.ConnectEnd(sender, pin, pt); return(true); }
private bool Output_led_OnPinMouseUp(QOutput_LED sender, CQPin pin, Point pt) { this.ConnectEnd(sender, pin, pt); return(true); }
private bool Input_switch_OnPinMouseUp(QInput_Switch sender, CQPin pin, Point pt) { this.ConnectEnd(sender, pin, pt); return(true); }