コード例 #1
0
        CreateFromHaveMousePositionTracker(
            THaveMousePositionTracker haveMousePositionTracker,
            ICanvasScreenConvertable canvasProxy
            )
        {
            if (haveMousePositionTracker == null)
            {
                throw new ArgumentNullException(nameof(haveMousePositionTracker));
            }


            if (canvasProxy == null)
            {
                throw new ArgumentNullException(nameof(canvasProxy));
            }


            var lengthInteractionHandler = new NumberBoxInteractionHandler();
            var angleInteractionHandler  = new NumberBoxInteractionHandler();

            return(new LengthAndAngleNumContainerForMouseTrackable <THaveMousePositionTracker>(
                       haveMousePositionTracker,
                       lengthInteractionHandler,
                       angleInteractionHandler,
                       canvasProxy
                       ));
        }
コード例 #2
0
        private LengthNumContainerForMouseTrackable(
            THaveMousePositionTracker haveMousePositionTracker,
            NumberBoxInteractionHandler lengthInteractionHandler,
            ICanvasScreenConvertable canvasProxy
            ) :
            base(
                new NumberBoxInteractionHandler[] {
            lengthInteractionHandler
        }
                )
        {
            HaveMousePositionTracker = haveMousePositionTracker ?? throw new ArgumentNullException(nameof(haveMousePositionTracker));
            CanvasProxy = canvasProxy ?? throw new ArgumentNullException(nameof(canvasProxy));

            _lengthInteractionHandler = lengthInteractionHandler ?? throw new ArgumentNullException(nameof(lengthInteractionHandler));

            Initialize();
        }
コード例 #3
0
        /// <summary>
        /// 将<paramref name="numberBoxInteractionHandler"/>的数据同步到对应的<see cref="INumberBox"/>
        /// </summary>
        /// <param name="numberBoxInteractionHandler"></param>
        private void UpdateNumberBoxWithNumberboxInteractionHandler(NumberBoxInteractionHandler numberBoxInteractionHandler)
        {
            var numberBox = _numberBoxCells.FirstOrDefault(p => p.NumberBoxInteractionHandler == numberBoxInteractionHandler)?.NumberBox;

            if (numberBox == null)
            {
                return;
            }

            numberBox.Visible = numberBoxInteractionHandler.Number != null;

            SetPropertyInternal(
                numberBoxInteractionHandler.Number,
                number => {
                numberBox.Number  = number;
                numberBox.Visible = true;
            }
                );
        }
コード例 #4
0
            public NumberBoxCell(NumberBoxInteractionHandler numberBoxInteractionHandler, INumberBox numberBox)
            {
                NumberBox = numberBox ?? throw new ArgumentNullException(nameof(numberBox));

                NumberBoxInteractionHandler = numberBoxInteractionHandler ?? throw new ArgumentNullException(nameof(numberBoxInteractionHandler));
            }