void Child_Drop(object sender, System.Windows.DragEventArgs e) { var content = new System.Windows.Controls.ContentControl(); var bind = new System.Windows.Data.Binding(); var cdp = new ChannelDataProvider { ChannelName = (string)e.Data.GetData(typeof(string)), IsBindInDesign = true }; //cdp.ChannelName = node.Tag + "." + node.Text; bind.Source = cdp; System.Windows.Data.BindingOperations.SetBinding(content, System.Windows.Controls.ContentControl.ContentProperty, bind); //TODO:need to solve problem with drag mouse capturing // System.Windows.Point p=System.Windows.Input.Mouse.GetPosition(Schema.MainCanvas); System.Windows.Controls.Canvas.SetLeft(content, 0); System.Windows.Controls.Canvas.SetTop(content, 0); content.Width = 60; content.Height = 50; if (MainPanel.Resources[typeof(BaseChannel)] == null) { var dt = ((DataTemplate)XamlReader.Load(new XmlTextReader(new StringReader(StringResources.ChannelDefaultTemplate)))); dt.DataType = typeof(BaseChannel); var dk = new DataTemplateKey(typeof(BaseChannel)); MainPanel.Resources[dk] = dt; } UndoBuff.AddCommand(new AddGraphicsObject(content)); }
void ActiveToolObjectCreated(object sender, EventArgs e) { UndoBuff.AddCommand(new AddGraphicsObject(sender as System.Windows.FrameworkElement)); MainPanel.UpdateLayout(); SelectionManager.SelectObject(sender as FrameworkElement); UpdateXamlView(); }
void WpfKeyDown(object sender, System.Windows.Input.KeyEventArgs e) { if (e.Key == System.Windows.Input.Key.Z && (System.Windows.Input.Keyboard.Modifiers & System.Windows.Input.ModifierKeys.Control) != System.Windows.Input.ModifierKeys.None) { UndoBuff.UndoCommand(); //SelectionManager.SelectObject(null); } else if (e.Key == System.Windows.Input.Key.Y && (System.Windows.Input.Keyboard.Modifiers & System.Windows.Input.ModifierKeys.Control) != System.Windows.Input.ModifierKeys.None) { UndoBuff.RedoCommand(); //SelectionManager.SelectObject(null); } else if (e.Key == System.Windows.Input.Key.X && (System.Windows.Input.Keyboard.Modifiers & System.Windows.Input.ModifierKeys.Control) != System.Windows.Input.ModifierKeys.None) { if (_activeTool is SelectionTool && SelectionManager.SelectedObjects.Count > 0) { var cmd = new CutCommand(this); cmd.CheckApplicability(); cmd.Execute(); cmd.Dispose(); } } else if (e.Key == System.Windows.Input.Key.C && (System.Windows.Input.Keyboard.Modifiers & System.Windows.Input.ModifierKeys.Control) != System.Windows.Input.ModifierKeys.None) { if (_activeTool is SelectionTool && SelectionManager.SelectedObjects.Count > 0) { var cmd = new CopyCommand(this); cmd.Execute(); cmd.Dispose(); } } else if (e.Key == System.Windows.Input.Key.V && (System.Windows.Input.Keyboard.Modifiers & System.Windows.Input.ModifierKeys.Control) != System.Windows.Input.ModifierKeys.None) { if (_activeTool is SelectionTool) { var cmd = new PasteCommand(this); cmd.Execute(); cmd.Dispose(); } } else if (e.Key == System.Windows.Input.Key.Delete) { if (SelectionManager.SelectedObjects.Count > 0) { UndoBuff.AddCommand(new DeleteGraphicsObject(SelectionManager.SelectedObjects.Cast <FrameworkElement>().FirstOrDefault())); } else if (_activeTool is SelectionTool && SelectionManager.SelectedObjects.Count > 0) { foreach (var el in SelectionManager.SelectedObjects.Cast <FrameworkElement>()) { UndoBuff.AddCommand(new DeleteGraphicsObject(el)); } } SelectionManager.SelectObject(null); } else if (e.Key == System.Windows.Input.Key.Add && (System.Windows.Input.Keyboard.Modifiers & System.Windows.Input.ModifierKeys.Control) != System.Windows.Input.ModifierKeys.None) { DocumentCommands.First(c => c.command is ZoomInCommand).command.Execute(); } else if (e.Key == System.Windows.Input.Key.Subtract && (System.Windows.Input.Keyboard.Modifiers & System.Windows.Input.ModifierKeys.Control) != System.Windows.Input.ModifierKeys.None) { DocumentCommands.First(c => c.command is ZoomOutCommand).command.Execute(); } else if (e.Key == System.Windows.Input.Key.Escape) { //NotifySetCurrentTool(toolsList[0]); } else if (e.Key == System.Windows.Input.Key.F5) { UpdateCanvasByXaml(); } else if (_activeTool is SelectionTool) { if (e.Key == System.Windows.Input.Key.Left) { (_activeTool as SelectionTool).MoveHelper(-1, 0); } if (e.Key == System.Windows.Input.Key.Right) { (_activeTool as SelectionTool).MoveHelper(1, 0); } if (e.Key == System.Windows.Input.Key.Up) { (_activeTool as SelectionTool).MoveHelper(0, -1); } if (e.Key == System.Windows.Input.Key.Down) { (_activeTool as SelectionTool).MoveHelper(0, 1); } } MainPanel.UpdateLayout(); }