private void LoadToolbarPanelControl(ToolBarButtonControl toolbarButtonControl) { StackPanel stackPanel = new StackPanel(); stackPanel.Orientation = Orientation.Horizontal; stackPanel.VerticalAlignment = System.Windows.VerticalAlignment.Top; #region 动态获取所有的IElementControl var types = this.GetType().Assembly.GetTypes(); var query = from Type t in types where t.GetInterface(typeof(IElementControl).FullName) != null select t; foreach (var type in query) { IElementControl elementControl = this.GetType().Assembly.CreateInstance(type.FullName) as IElementControl; elementControl.InitEvent(); if (toolbarButtonControl.Tag != null && toolbarButtonControl.Tag.ToString() == elementControl.OwnerName) { UserControl userControl = elementControl as UserControl; userControl.Height = 100; userControl.Width = 100; userControl.Margin = new Thickness(10, 10, 10, 10); stackPanel.Children.Add(userControl); } } this.ToolbarPanelGrid.Children.Add(stackPanel); #endregion }
public static void InitCanvasEvent(this IElementControl elementControl) { var main = App.Current.MainWindow as IMain; UserControl userControl = elementControl as UserControl; userControl.MouseLeftButtonDown += (s, e) => { main.CurrentMoveControl = null; Canvas.SetZIndex(userControl, 0); Storyboard storyboard = App.Current.Resources["ST_ElementControl_MouseEnter"] as Storyboard; storyboard.Begin(userControl.Content as Panel); e.Handled = true; }; userControl.MouseLeftButtonUp += (s, e) => { foreach (var eControl in main.CurrentSelectionControlList) { } }; }
public static void InitEvent(this IElementControl elementControl) { var userControl = elementControl as UserControl; userControl.MouseEnter += (s, e) => { Panel p = userControl.Content as Panel; var storyboard = App.Current.Resources["ST_IElementControl_MouseEnter"] as Storyboard; storyboard.Begin(p); }; userControl.MouseLeave += (s, e) => { Panel p = userControl.Content as Panel; var storyboard = App.Current.Resources["ST_IElementControl_MouseLeave"] as Storyboard; storyboard.Begin(p); }; userControl.MouseLeftButtonDown += (s, e) => { var mainWindow = App.Current.MainWindow as IMain; Point p = e.GetPosition(mainWindow.RootPanel); var newuserControl = userControl.GetType().Assembly.CreateInstance(userControl.GetType().FullName) as UserControl; var newElementControl = newuserControl as IElementControl; newuserControl.Width = 100; newuserControl.Height = 100; Canvas.SetTop(newuserControl, p.Y); Canvas.SetLeft(newuserControl, p.X); Canvas.SetZIndex(newuserControl, 100); newElementControl.InitCanvasEvent(); mainWindow.CanvasPanel.Children.Add(newuserControl); mainWindow.CurrentMoveControl = newuserControl; e.Handled = true; }; }