Exemplo n.º 1
0
        /// <summary>
        /// 指定したパーツコレクションから、該当するパーツを検索する
        /// </summary>
        /// <param name="pos"></param>
        /// <param name="pane"></param>
        /// <param name="isSelectableOnly"></param>
        /// <param name="pcol"></param>
        /// <param name="rp">ペーンを返す(イリュージョンプロジェクタのペーンが返るので、paneと異なる場合がある)</param>
        /// <returns></returns>
        private PartsBase getparts(ScreenPos pos, IRichPane pane, bool isSelectableOnly, IList pcol, out IRichPane rp)
        {
            for (var pidx = pcol.Count - 1; pidx >= 0; pidx--)
            {
                var dp = (PartsBase)pcol[pidx];

                if (dp is IPartsVisible)
                {
                    if (((IPartsVisible)dp).Visible == false)
                    {
                        continue;
                    }
                }
                if (isSelectableOnly)
                {
                    if (dp is IPartsSelectable == false)
                    {
                        continue;
                    }
                }
                // プロジェクタを通して、パーツ座標を調査する
                foreach (IRichPane pp in PartsIllusionProjector.GetEnumerator(pane, getProjectors(pane, false), dp))
                {
                    if (dp.IsOn(pos, pp) != PartsBase.PointType.Outside)
                    {
                        rp = pp;
                        return(dp);
                    }
                }
            }
            rp = null;
            return(null);
        }
Exemplo n.º 2
0
 /// <summary>
 /// モーションスクロールする位置を設定する
 /// </summary>
 /// <param name="pane">スクロールしたいペーン</param>
 /// <param name="pos">スクロール目的地</param>
 /// <param name="step">モーションステップ数 20位をセットするとちょうど良い</param>
 public void SetMotionScrollPosition(IRichPane pane, ScreenPos pos, int step)
 {
     lock (_motionScroll)
     {
         _motionScroll[pane] = new ScrollCommand(pos, step);
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// BMPキャッシュ機能を追加したレイヤー描画
 /// </summary>
 /// <param name="pane"></param>
 /// <param name="layerid"></param>
 /// <param name="pts"></param>
 protected override void drawLayer(IRichPane pane, int layerid, IEnumerable <PartsBase> pts)
 {
     if (_enabledLayers.ContainsKey(layerid))
     {
         if (bmps.ContainKeys(pane, layerid) == false)
         {
             var pr = MotherPane.GetPaneRect();
             bmps[pane, layerid] = new Bitmap(pr.Width, pr.Height);
         }
         var bmp = bmps[pane, layerid];
         if (EnableShot == false)
         {
             var rp = RichPaneCustomGraphicsBinder.CreateCopy(MotherPane, Graphics.FromImage(bmp));
             rp.SetParent(MotherPane);
             rp.Graphics.Clear(Color.Transparent);
             base.drawLayer(rp, layerid, pts);
             var sr = pane.GetPaneRect();
             MotherPane.Graphics.DrawImageUnscaledAndClipped(bmp, sr);
             panebak[pane, layerid] = rp;
         }
         else
         {
             var sr    = pane.GetPaneRect();
             var rpbak = panebak[pane, layerid];
             //					pane.Graphics.SetClip(sr);
             sr += ScreenPos.FromInt(pane.Scroll.X - rpbak.Scroll.X, pane.Scroll.Y - rpbak.Scroll.Y);
             MotherPane.Graphics.DrawImageUnscaledAndClipped(bmp, sr);
         }
     }
     else
     {
         base.drawLayer(pane, layerid, pts);
     }
 }
Exemplo n.º 4
0
        public void OnMouseMove(MouseState e)
        {
            _bar.MouseNow = e;

            // バーの位置だけ再描画
            var br = _tarPane.GetPaneRect();

            br.LT.X = br.RB.X - PartsScrollbarV.Width;
            Pane.Invalidate(br);

            if (_bar.IsOn)
            {
                var k = _speed * _bar.Acc;

                var ly = (_downPos.Y - e.Pos.Y) * k;
                ly          = Math.Pow(Math.Abs(ly), 1.25) * (ly > 0 ? 1 : -1); // たくさん移動したら、加速度的に移動する
                Pane.Scroll = ScreenPos.FromInt(Pane.Scroll.X, _downScroll.Y + (int)ly);
                _bar.SetHighlight(false);
                Pane.Invalidate(null);
            }
            else
            {
                _bar.SetHighlight(true);
            }
        }
Exemplo n.º 5
0
        public void OnMouseDown(MouseState e)
        {
            var pr = getPaneRect();

            if (_lp != null && Math.Abs(e.Pos.Y - (pr.RB.Y - _lp.Rect.Height)) < 4 && pr.LR.IsIn(e.Pos))    // ログパネルサイズ変更
            {
                _sizingHeightOrg    = e.Pos.Clone() as ScreenPos;
                Pane.Control.Cursor = Cursors.SizeNS;
            }
            else
            {
                foreach (var kv in _clickArea)
                {
                    var re = ScreenRect.FromLTWH(kv.Value.X, kv.Value.Y, 20, 20);
                    if (re.IsIn(e.Pos))
                    {
                        LOG.ChangeDispLevel(kv.Key);
                        if (kv.Key == 0)    // クローズボタン
                        {
                            triggerCloseButtonProc();
                        }
                    }
                }
            }
        }
Exemplo n.º 6
0
        public void OnMouseMove(MouseState e)
        {
            _bar.MouseNow = e;

            // バーの位置だけ再描画
            var br = _tarPane.GetPaneRect();

            br.LT.Y = br.RB.Y - PartsScrollbarH.Height;
            Pane.Invalidate(br);

            if (_bar.IsOn)
            {
                var k = Pane.Zoom.X > 84 ? Pane.Zoom.X / 84 : 1.0;
                k *= _speed * _bar.Acc;

                var lx = (_downPos.X - e.Pos.X) * k;
                lx          = Math.Pow(Math.Abs(lx), 1.25) * (lx > 0 ? 1 : -1); // たくさん移動したら、加速度的に移動する
                Pane.Scroll = ScreenPos.FromInt(_downScroll.X + (int)lx, Pane.Scroll.Y);
                _bar.SetHighlight(false);
                Pane.Invalidate(null);
            }
            else
            {
                _bar.SetHighlight(true);
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// 指定量のズームを行う
        /// </summary>
        /// <param name="value"></param>
        private void zoom(int x, int y)
        {
            // 選択ペーンの描画領域の中心をズームのセンターの設定
            var _posDown = new ScreenPos
            {
                X = _tarPane.GetPaneRect().LT.X + _tarPane.GetPaneRect().Width / 2 - _tarPane.GetPaneRect().LT.X,
                Y = _tarPane.GetPaneRect().LT.Y + _tarPane.GetPaneRect().Height / 2 - _tarPane.GetPaneRect().LT.Y
            };
            var _scrollDown = (ScreenPos)Pane.Scroll.Clone();
            var _zoomDown   = (XyBase)Pane.Zoom.Clone();

            // 画面の拡大/縮小
            XyBase zoomNow;

            if (_isX && !_isY)
            {
                zoomNow = Pane.Zoom + XyBase.FromInt(x, 0);            // ズーム値の算出
            }
            else if (!_isX && _isY)
            {
                zoomNow = Pane.Zoom + XyBase.FromInt(0, y);            // ズーム値の算出
            }
            else
            {
                zoomNow = Pane.Zoom + x;                            // ズーム値の算出
            }
            // ズーム値を規定範囲内に収める
            if (zoomNow.X > 4000)
            {
                zoomNow.X = 4000;
            }

            if (zoomNow.Y > 4000)
            {
                zoomNow.Y = 4000;
            }

            if (zoomNow.X < 5)
            {
                zoomNow.X = 5;
            }

            if (zoomNow.Y < 5)
            {
                zoomNow.Y = 5;
            }

            Pane.Zoom = (XyBase)zoomNow.Clone();           // ズーム値の反映

            // クリックした位置を基準にしてズームするように画面をスクロールする。
            var ZoomRatioX = (double)zoomNow.X / _zoomDown.X;                       // X方向のズーム率の算出
            var ZoomRatioY = (double)zoomNow.Y / _zoomDown.Y;                       // Y方向のズーム率の算出

            var beforeDownPos = _posDown - _scrollDown - _tarPane.GetPaneRect().LT; //
            var afterDownPos  = ScreenPos.FromInt((int)(ZoomRatioX * beforeDownPos.X), (int)(ZoomRatioY * beforeDownPos.Y));

            Pane.Scroll = _scrollDown - (afterDownPos - beforeDownPos);
            Pane.Invalidate(null);
        }
Exemplo n.º 8
0
 public void OnMouseUp(MouseState e)
 {
     if (_sizingHeightOrg != null)
     {
         _sizingHeightOrg = null;
         savePanelHeight();
     }
 }
Exemplo n.º 9
0
        public void OnMouseMove(MouseState e)
        {
            var pr = getPaneRect();

            if (_sizingHeightOrg != null)
            {
                if (e.Attr.IsButton)
                {
                    var adp = e.Pos.Clone() as ScreenPos;
                    if (adp.Y < pr.LT.Y)
                    {
                        adp.Y = pr.LT.Y;
                    }

                    if (pr.RB.Y - adp.Y < foldingHeight)
                    {
                        adp.Y = pr.RB.Y - foldingHeight;
                    }

                    Pane.Control.Cursor = Cursors.SizeNS;
                    _lp.Rect.RB.Y       = pr.RB.Y - adp.Y;
                    _tarPane.Invalidate(null);
                }
                else
                {
                    Pane.Control.Cursor = Cursors.Arrow;
                    _sizingHeightOrg    = null;
                    savePanelHeight();
                }
            }
            else
            {
                if (_lp != null && Math.Abs(e.Pos.Y - (pr.RB.Y - _lp.Rect.Height)) < 4 && pr.LR.IsIn(e.Pos))    // ログパネルサイズ変更
                {
                    Pane.Control.Cursor = Cursors.SizeNS;
                }
                else
                {
                    var isCur = false;
                    foreach (var kv in _clickArea)
                    {
                        var re = ScreenRect.FromLTWH(kv.Value.X, kv.Value.Y, 20, 20);
                        if (re.IsIn(e.Pos))
                        {
                            isCur = true;
                        }
                    }
                    if (isCur)
                    {
                        Pane.Control.Cursor = Cursors.Hand;
                    }
                    else
                    {
                        Pane.Control.Cursor = Cursors.Arrow;
                    }
                }
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// 値を指定してインスタンスを作る
        /// </summary>
        /// <param name="v1">値1</param>
        /// <param name="v2">値2</param>
        /// <returns>インスタンス</returns>

        public static new ScreenPos FromInt(int v1, int v2)
        {
            var ret = new ScreenPos
            {
                _v1 = v1,
                _v2 = v2
            };

            return(ret);
        }
Exemplo n.º 11
0
 /// <summary>
 /// ボタンDownイベント
 /// </summary>
 /// <param name="e"></param>
 public virtual void OnMouseDown(MouseState e)
 {
     if (e.Attr.Equals(_trigger))
     {
         _posDown    = (ScreenPos)e.Pos.Clone();
         _paneDown   = Pane;
         _zoomDown   = (XyBase)Pane.Zoom.Clone();
         _scrollDown = (ScreenPos)Pane.Scroll.Clone();
     }
 }
Exemplo n.º 12
0
 /// <summary>
 /// 指定位置がスキップゾーンかどうかを調べる
 /// </summary>
 /// <param name="pos"></param>
 /// <returns></returns>
 protected bool isInSkipzone(ScreenPos pos)
 {
     foreach (var r in _skipzones)
     {
         if (r.IsIn(pos))
         {
             return(true);
         }
     }
     return(false);
 }
Exemplo n.º 13
0
        /// <summary>
        /// 指定領域から特定位置のパーツを探す
        /// </summary>
        /// <param name="pos">位置</param>
        /// <param name="pane">検索ペーン</param>
        /// <param name="layer">検索レイヤー</param>
        /// <param name="isSelectableOnly">選択可能のみ</param>
        /// <returns>取得できたパーツ / null=なし</returns>
        public override PartsBase GetPartsAt(ScreenPos pos, IRichPane pane, int layer, bool isSelectableOnly)
        {
            PartsBase ret = null;

            if (_data.TryGetValue(pane, out var layers))
            {
                if (layers.TryGetValue(layer, out var pcol))
                {
                    ret = getparts(pos, pane, isSelectableOnly, pcol, out var rp);
                }
            }
            return(ret);
        }
Exemplo n.º 14
0
        /// <summary>
        /// 移動情報を更新する
        /// 注意:いったんスクリーン座標に変換して移動するので、コード座標に変換誤差が生じる可能性がある。
        /// </summary>
        /// <param name="dragStartPos">移動開始時のマウス座標(ドラッグ開始点)</param>
        /// <param name="currentPos">現在のマウス座標</param>
        /// <param name="type">座標変更タイプ</param>
        public void Develop(ScreenPos dragStartPos, ScreenPos currentPos, DevelopType type)
        {
            _lastDevelpType = type;
            var sdelta = currentPos - dragStartPos;     // マウスの移動量

            _prevShift = sdelta;

            foreach (DictionaryEntry de in this)            // 選択中全パーツに対して行う
            {
                var p3     = (Pos3)de.Value;
                var target = (PartsBase)de.Key;
                p3.Pre = p3.Now;                                                                              // ひとつ前の座標に記憶
                p3.Now = (CodeRect)p3.Now.Clone();                                                            // サイズ系の処理が正しく動作するために必要
                var virtualPos = target.GetCdRect(p3.NowPane, target.GetScRect(p3.OrgPane, p3.Org) + sdelta); // 移動後の位置を計算
                var d          = target.GetCdPos(p3.NowPane, sdelta);
                //Debug.WriteLine( string.Format( "[{0}] Delta[{1}]:Offset[{2}]", i, d, p3.Offset) );

                virtualPos = CodeRect.FromLTWH(virtualPos.LT.X + p3.Offset.X, virtualPos.LT.Y, virtualPos.Width, virtualPos.Height);

                switch (type)
                {
                case DevelopType.Move:
                    p3.Now = virtualPos;
                    if (p3.Now.Width != p3.Org.Width)
                    {
                        p3.Now.RB.X = p3.Now.LT.X + p3.Org.Width - 1;       // 幅が変わらないようにする
                    }
                    break;

                case DevelopType.SizeRight:
                    p3.Now.RB.X = virtualPos.RB.X;
                    break;

                case DevelopType.SizeLeft:
                    p3.Now.LT.X = virtualPos.LT.X;
                    break;

                case DevelopType.SizeTop:
                    p3.Now.LT.Y = virtualPos.LT.Y;
                    break;

                case DevelopType.SizeBottom:
                    p3.Now.RB.Y = virtualPos.RB.Y;
                    break;
                }
            }
        }
Exemplo n.º 15
0
        /// <summary>
        /// マウスダウン処理の最終決定
        /// </summary>
        protected virtual void _finalMouseDownPart()
        {
            var e = _clickPos;

            if (_selectedParts.Count > 0)
            {
                var tarPane = ClickPane;
                var parts   = ClickParts; // Parts.GetPartsAt(e.Pos, true, out tarPane);
                if (parts != null)
                {
                    if (parts.IsOn(e.Pos, tarPane) == PartsBase.PointType.Inside)
                    {
                        _pos.SetDevelop(_developmentMode = PartsPositionManager.DevelopType.Move);
                        _mouseDownOriginal = e.Pos;
                        _pos.Initialize(_selectedParts);
                        Token.Add(TokenGeneral.TokenMouseDownNormalize, this);
                    }
                }
            }
        }
Exemplo n.º 16
0
        /// <summary>
        /// マウスアップの最終処理
        /// </summary>
        protected virtual void OnFinalizeMouseUpJob()
        {
            if (_mouseDownOriginal != null)
            {
                var movedCount = 0;

                // 移動パーツをデータに反映させる
                foreach (DictionaryEntry de in _pos)
                {
                    var parts = (PartsBase)de.Key;
                    var pos   = (PartsPositionManager.Pos3)de.Value;
                    if (pos.Now.LT.Equals(pos.Org.LT) == false || pos.Now.RB.X != pos.Org.RB.X)
                    {
                        if (movedCount == 0)
                        {
                            Persister[REDO].Save(_selectedParts, _meansSelectedParts);
                        }
                        // データ更新
                        Link.Equalization(parts, false);    // Data~Partsのデータ連動

                        // REDO永続化(パーツ)
                        //savePartsWithFriend(Persister[REDO], parts, new Hashtable());

                        // REDO永続化(レコード)
                        foreach (RecordBase rb in Link.GetRecordset(parts))
                        {
                            Persister[REDO].Save(rb, _meansSelectedParts);
                        }
                        movedCount++;
                    }
                }

                // 移動終了
                _mouseDownOriginal = null;
                _pos.Clear();

                Persister[REDO].EndChunk(); // REDOを先に行うことは重要
                Persister[UNDO].EndChunk();
                Pane.Invalidate(Pane.GetPaneRect());
            }
        }
Exemplo n.º 17
0
        public void OnMouseDown(MouseState e)
        {
            if (_bar.MouseNow == null)
            {
                return;
            }

            // 一度だけ、クリック不感帯を登録
            if (_skipzone == null)
            {
                var pr = _tarPane.GetPaneRect();
                _skipzone = ScreenRect.FromLTWH(pr.RB.X - PartsScrollbarV.Width, pr.LT.Y, PartsScrollbarV.Width, pr.Height);
                Parts.AddSkipZone(_skipzone);
            }

            // クリック操作
            _bar.SetOn(true, true);
            _bar.SetHighlight(false);
            _downPos    = (ScreenPos)e.Pos.Clone();
            _downScroll = (ScreenPos)Pane.Scroll.Clone();

            _bar.Acc = 1;
            if (e.Attr.IsShift && !e.Attr.IsCtrl)
            {
                _bar.Acc = 4;
            }

            if (!e.Attr.IsShift && e.Attr.IsCtrl)
            {
                _bar.Acc = 0.5f;
            }

            if (e.Attr.IsShift && e.Attr.IsCtrl)
            {
                _bar.Acc = 16;
            }

            Pane.Invalidate(null);
        }
Exemplo n.º 18
0
 /// <summary>
 /// オートスクロールする
 /// </summary>
 public void autoScroll()
 {
     try
     {
         var e = MouseState.Now;
         _timer = null;
         var pp = 0;
         if (e.Attr.IsButton)
         {
             var pr = _tarPane.GetPaneRect();
             e.Pos = ThreadSafe.PointToClient(_tarPane.Control, e.Pos);
             if (e.Pos.Y > -24 && e.Pos.Y < pr.Height + 24)
             {
                 if (e.Pos.X < 16)
                 {
                     pp = 20;
                 }
                 if (e.Pos.X > pr.Width - 32)
                 {
                     pp = -20;
                 }
             }
         }
         if (pp != 0)
         {
             Pane.Scroll = ScreenPos.FromInt(Pane.Scroll.X + pp, Pane.Scroll.Y);
             Pane.Invalidate(null);
             _timer = Timer.AddTrigger(100, new GuiTimer.Proc0(autoScroll));
         }
         else
         {
             _timer = null;
         }
     }
     catch (Exception)
     {
     }
 }
Exemplo n.º 19
0
        /// <summary>
        /// 指定マウス座標のパーツをひとつ取得する
        /// </summary>
        /// <param name="pos">パーツ座標</param>
        /// <returns>取得できたパーツ / null=なし</returns>
        public override PartsBase GetPartsAt(ScreenPos pos, bool isSelectableOnly, out IRichPane rp)
        {
            rp = null;
            if (isInSkipzone(pos))
            {
                return(null);
            }

            // リッチペーンによるループ
            for (IDictionaryEnumerator de = _data.GetEnumerator(); de.MoveNext();)
            {
                var pane = (IRichPane)de.Key;

                if (pane.GetPaneRect().IsIn(pos) == false)
                {
                    continue;
                }

                // レイヤーによるループ
                for (var layerde = ((IDictionary)de.Value).GetEnumerator(); layerde.MoveNext();)
                {
                    if (_layerVisibleSwitch[(int)layerde.Key])
                    {
                        // すべてのパーツを順に調査する、低速の処理。気に入らなければ機能をオーバーライドしてください
                        // ただし、以下のプロジェクタを考慮した作りにする必要があります。
                        var pcol = (IList)layerde.Value;
                        var ret  = getparts(pos, pane, isSelectableOnly, pcol, out rp);
                        if (ret != null)
                        {
                            return(ret);
                        }
                    }
                }
            }
            return(null);
        }
Exemplo n.º 20
0
 /// <summary>
 /// パーツ選択処理をマウスダウンイベントで行う
 /// </summary>
 public void OnMouseDown(MouseState e)
 {
     _clickPos = (ScreenPos)e.Pos.Clone();
 }
Exemplo n.º 21
0
 private ScreenPos savePos(LLV lv, ScreenPos pos)
 {
     _clickArea[lv] = pos;
     return(pos);
 }
Exemplo n.º 22
0
 /// <summary>
 /// 指定マウス座標のパーツをひとつ取得する
 /// </summary>
 /// <param name="pos">座標</param>
 /// <param name="isSelectableOnly"></param>
 /// <returns>取得できたパーツ / null=なし</returns>
 public PartsBase GetPartsAt(ScreenPos pos, bool isSelectableOnly)
 {
     return(GetPartsAt(pos, isSelectableOnly, out var rp));
 }
Exemplo n.º 23
0
 /// <summary>
 /// ボタンUpイベント
 /// </summary>
 /// <param name="e"></param>
 public virtual void OnMouseUp(MouseState e)
 {
     _posDown    = null;
     _zoomDown   = null;
     _scrollDown = null;
 }
Exemplo n.º 24
0
 /// <summary>
 /// 指定領域内のパーツを検索する
 /// </summary>
 /// <param name="pos">座標</param>
 /// <param name="rp">検索ペーン</param>
 /// <param name="layer">検索レイヤー</param>
 /// <param name="isSelectableOnly">選択可能なパーツのみ検索</param>
 /// <returns>取得できたパーツ / null=なし</returns>
 public virtual PartsBase GetPartsAt(ScreenPos pos, IRichPane rp, int layer, bool isSelectableOnly)
 {
     throw new NotSupportedException();
 }
Exemplo n.º 25
0
        /// <summary>
        /// マウスMoveイベント
        /// </summary>
        /// <param name="e"></param>
        public virtual void OnMouseMove(MouseState e)
        {
            if (_posDown == null || _zoomDown == null || _scrollDown == null || e.Pane == null)
            {
                return;
            }

            if (e.Attr.Equals(_trigger))
            {
                // 画面の拡大/縮小
                ScreenPos movePos = e.Pos - _posDown;          // カーソルの移動量の計算
                ScreenPos pdBak   = (ScreenPos)_posDown.Clone();
                if (_isCenterLock)
                {
                    _posDown.X = e.Pane.GetPaneRect().LT.X + (e.Pane.GetPaneRect().RB.X - e.Pane.GetPaneRect().LT.X) / 2;
                    _posDown.Y = e.Pane.GetPaneRect().LT.Y + (e.Pane.GetPaneRect().RB.Y - e.Pane.GetPaneRect().LT.Y) / 2;
                }

                XyBase zoomNow = _zoomDown + movePos * 3;      // ズーム値の算出  速度変更(高解像度に伴い) 2016.11.15 Tono 2→3

                // ズーム値を規定範囲内に収める
                if (zoomNow.X > 4000)
                {
                    zoomNow.X = 4000;
                }

                if (zoomNow.Y > 4000)
                {
                    zoomNow.Y = 4000;
                }

                if (zoomNow.X < 5)
                {
                    zoomNow.X = 5;
                }

                if (zoomNow.Y < 5)
                {
                    zoomNow.Y = 5;
                }

                if (_isSameXY)
                {
                    zoomNow.Y = zoomNow.X;
                }

                Pane.Zoom = (XyBase)zoomNow.Clone();           // ズーム値の反映

                // クリックした位置を基準にしてズームするように画面をスクロールする。
                double ZoomRatioX = (double)zoomNow.X / _zoomDown.X;                        // X方向のズーム率の算出
                double ZoomRatioY = (double)zoomNow.Y / _zoomDown.Y;                        // Y方向のズーム率の算出

                ScreenPos beforeDownPos = _posDown - _scrollDown - e.Pane.GetPaneRect().LT; //
                ScreenPos afterDownPos  = ScreenPos.FromInt((int)(ZoomRatioX * beforeDownPos.X), (int)(ZoomRatioY * beforeDownPos.Y));

                if (_noscrollmove.value == false)
                {
                    Pane.Scroll = _scrollDown - (afterDownPos - beforeDownPos);
                }
                else
                {
                    _noscrollmove.value = false;
                }
                Pane.Invalidate(null);
                _posDown = pdBak;
            }
            else
            {
                OnMouseUp(e);
            }
        }
Exemplo n.º 26
0
        /// <summary>
        /// デフォルトコンストラクタ
        /// </summary>

        public ScreenRect()
        {
            _lt = new ScreenPos();
            _rb = new ScreenPos();
        }