Ejemplo n.º 1
0
        protected ElementControl(Circuit.Element E)
        {
            element = E;
            element.Tag = this;

            UseLayoutRounding = true;
            Background = Brushes.Transparent;

            foreach (Circuit.Terminal i in E.Terminals)
                i.ConnectionChanged += (x, y) => InvalidateVisual();
        }
Ejemplo n.º 2
0
        protected ElementControl(Circuit.Element E)
        {
            element     = E;
            element.Tag = this;

            Background = Brushes.Transparent;

            foreach (Circuit.Terminal i in E.Terminals)
            {
                i.ConnectionChanged += (x, y) => InvalidateVisual();
            }
        }
Ejemplo n.º 3
0
 public static ElementControl New(Circuit.Element E)
 {
     if (E is Circuit.Wire wire)
     {
         return(new WireControl(wire));
     }
     else if (E is Circuit.Symbol symbol)
     {
         return(new SymbolControl(symbol));
     }
     else
     {
         throw new NotImplementedException();
     }
 }
        private void ElementLayoutChanged(object sender, EventArgs e)
        {
            Circuit.Element element = (Circuit.Element)sender;
            Circuit.Coord   lb      = element.LowerBound;
            Circuit.Coord   ub      = element.UpperBound;

            ElementControl control = (ElementControl)element.Tag;

            Canvas.SetLeft(control, lb.x + origin.x);
            Canvas.SetTop(control, lb.y + origin.y);

            control.Width  = ub.x - lb.x;
            control.Height = ub.y - lb.y;

            control.InvalidateVisual();
        }
Ejemplo n.º 5
0
        public override ContextMenu BuildContextMenu(Circuit.Coord At)
        {
            Circuit.Element at = Target.AtPoint(At).FirstOrDefault();
            if (at != null && !((ElementControl)at.Tag).Selected)
            {
                Target.ToggleSelect(at);
            }

            ContextMenu menu = new ContextMenu();

            menu.Items.Add(new MenuItem()
            {
                Command = ApplicationCommands.SelectAll, CommandTarget = Target
            });
            menu.Items.Add(new Separator());
            menu.Items.Add(new MenuItem()
            {
                Command = ApplicationCommands.Cut, CommandTarget = Target
            });
            menu.Items.Add(new MenuItem()
            {
                Command = ApplicationCommands.Copy, CommandTarget = Target
            });
            menu.Items.Add(new MenuItem()
            {
                Command = ApplicationCommands.Paste, CommandTarget = Target
            });
            menu.Items.Add(new MenuItem()
            {
                Command = ApplicationCommands.Delete, CommandTarget = Target
            });
            menu.Items.Add(new Separator());
            menu.Items.Add(new MenuItem()
            {
                Command = ApplicationCommands.Undo, CommandTarget = Target
            });
            menu.Items.Add(new MenuItem()
            {
                Command = ApplicationCommands.Redo, CommandTarget = Target
            });
            return(menu);
        }
Ejemplo n.º 6
0
 protected void OnLayoutChanged(object sender, EventArgs e)
 {
     Circuit.Element E = (Circuit.Element)sender;
 }