protected override void UpdateInsertionPoint()
        {
            IViewPanel viewPanel = MoveStrategy.GetContainerHost((SceneElement)this.LayoutContainer) as IViewPanel;

            this.ClearAdorner();
            this.InsertionPoint.Element = this.LayoutContainer;
            bool isCursorAtEnd = true;

            this.InsertionPoint.Index         = FlowPanelLayoutUtilities.GetInsertionIndex((SceneElement)this.LayoutContainer, this.ActiveView.TransformPoint((IViewObject)this.ActiveView.HitTestRoot, this.LayoutContainer.Visual, this.DragCurrentPosition), out isCursorAtEnd);
            this.InsertionPoint.IsCursorAtEnd = isCursorAtEnd;
            this.AdornerSet = (AdornerSet) new FlowPanelInsertionPointAdornerSet(this.ToolContext, this.LayoutContainer, (FlowPanelInsertionPoint)this.InsertionPoint);
            this.ActiveView.AdornerLayer.Add((IAdornerSet)this.AdornerSet);
        }
Esempio n. 2
0
        protected override void UpdateInsertionPoint()
        {
            this.ClearAdorner();
            this.InsertionPoint.Element = this.LayoutContainer;
            ITextFlowSceneNode textFlowSceneNode = this.InsertionPoint.Element as ITextFlowSceneNode;
            Point            mousePosition       = this.InsertionPoint.Element.ViewModel.DefaultView.GetMousePosition(this.Pointer, MoveStrategy.GetContainerHost((SceneElement)this.InsertionPoint.Element));
            IViewTextPointer positionFromPoint   = textFlowSceneNode.GetPositionFromPoint(mousePosition);
            IViewTextPointer position            = positionFromPoint != null?positionFromPoint.GetInsertionPosition(LogicalDirection.Forward) : textFlowSceneNode.ContentEnd.GetNextInsertionPosition(LogicalDirection.Backward);

            this.InsertionPoint.IsCursorAtEnd = false;
            if (textFlowSceneNode.ContentStart == null)
            {
                this.InsertionPoint.IsCursorAtEnd = true;
            }
            else
            {
                this.InsertionPoint.Index = textFlowSceneNode.ContentStart.GetOffsetToPosition(position);
                this.AdornerSet           = (AdornerSet) new TextFlowInsertionPointAdornerSet(this.ToolContext, this.LayoutContainer, (TextFlowInsertionPoint)this.InsertionPoint);
                this.ActiveView.AdornerLayer.Add((IAdornerSet)this.AdornerSet);
            }
        }