ICSharpCode.WpfDesign.Designer.Services.CreateComponentTool.OnMouseDown C# (CSharp) Метод

OnMouseDown() приватный Метод

private OnMouseDown ( object sender, System.Windows.Input.MouseButtonEventArgs e ) : void
sender object
e System.Windows.Input.MouseButtonEventArgs
Результат void
        void OnMouseDown(object sender, MouseButtonEventArgs e)
        {
            if (e.ChangedButton == MouseButton.Left && MouseGestureBase.IsOnlyButtonPressed(e, MouseButton.Left)) {
                e.Handled = true;
                IDesignPanel designPanel = (IDesignPanel)sender;
                DesignPanelHitTestResult result = designPanel.HitTest(e.GetPosition(designPanel), false, true, HitTestType.Default);
                if (result.ModelHit != null) {
                    var darwItemBehaviors = result.ModelHit.Extensions.OfType<IDrawItemExtension>();
                    var drawItembehavior = darwItemBehaviors.FirstOrDefault(x => x.CanItemBeDrawn(componentType));
                    if (drawItembehavior != null && drawItembehavior.CanItemBeDrawn(componentType)) {
                        drawItembehavior.StartDrawItem(result.ModelHit, componentType, designPanel, e);
                    }
                    else {
                        var placementBehavior = result.ModelHit.GetBehavior<IPlacementBehavior>();
                        if (placementBehavior != null) {
                            var createdItem = CreateItem(designPanel.Context);

                            new CreateComponentMouseGesture(result.ModelHit, createdItem, changeGroup).Start(designPanel, e);
                            // CreateComponentMouseGesture now is responsible for the changeGroup created by CreateItem()
                            changeGroup = null;
                        }
                    }
                }
            }
        }