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