Example #1
0
        private void CleanUpAfterDrag()
        {
            var window = Window.GetWindow(_MetroControl);

            window.ClearValue(Window.AllowDropProperty);
            window.DragEnter    -= HandleDrag;
            window.DragOver     -= HandleDrag;
            window.DragLeave    -= HandleDrag;
            window.Drop         -= HandleDrop;
            window.GiveFeedback -= HandleGiveFeedback;

            VisualStateManager.GoToState(_DragTile, "IsNotDragSource", true);

            if (_DragAdorner != null)
            {
                _DragAdorner.Detach();
            }
            if (_ScrollHelper != null)
            {
                _ScrollHelper.Stop();
            }

            _DragAdorner    = null;
            _DragSourcePage = null;
            _DragTile       = null;
            _DragData       = null;
            _TileDropHelper = null;
            _ScrollHelper   = null;
            _NewPageHelper  = null;
        }
 protected override void OnMouseMove(System.Windows.Input.MouseEventArgs e)
 {
     if (e != null && !this.Disabled && this.IsOutmostPanel())
     {
         if (this.AutoConnectEnabled)
         {
             this.RemoveAutoConnectAdorner();
         }
         if (e.LeftButton == MouseButtonState.Pressed)
         {
             if (connectorEditor != null && connectorEditor.BeingEdited)
             {
                 AutoScrollHelper.AutoScroll(e, this, 1);
                 connectorEditor.Update(e.GetPosition(this));
                 e.Handled = true;
             }
         }
     }
     base.OnMouseMove(e);
 }
Example #3
0
        private void PrepareForDrag()
        {
            var window = Window.GetWindow(_MetroControl);

            window.AllowDrop     = true;
            window.DragEnter    += HandleDrag;
            window.DragOver     += HandleDrag;
            window.DragLeave    += HandleDrag;
            window.Drop         += HandleDrop;
            window.GiveFeedback += HandleGiveFeedback;

            if (_MetroControlPanel == null)
            {
                _MetroControlPanel = _MetroControl.GetItemsHost();
            }

            VisualStateManager.GoToState(_DragTile, "IsDragSource", true);
            _DragSourcePage = _DragTile.GetVisualParent <MetroStartPage>();
            _DragData       = _DragSourcePage != null?_DragSourcePage.ItemContainerGenerator.ItemFromContainer(_DragTile) : null;

            var adornerTemplate = (DataTemplate)_MetroControl.FindResource(MetroControl.DragAdornerDataTemplateKey);

            _DragAdorner = new TemplatedDragDropAdorner(_MetroControl, adornerTemplate, _DragData);

            _AdornerOffset = _MetroControl.TranslatePoint(_MouseDownPosition, _DragTile);

            _CenterOffset = new Point();
            _CenterOffset.Offset((_DragTile.RenderSize.Width / 2) - _AdornerOffset.X, (_DragTile.RenderSize.Height / 2) - _AdornerOffset.Y);

            _TileDropHelper = new TileDropHelper(this);
            _ScrollHelper   = new AutoScrollHelper(this);
            if (CanCreateNewPages())
            {
                _NewPageHelper = new DragTileIntoNewPageHelper(this);
            }
        }
Example #4
0
 public ScrollInfo(AutoScrollHelper owner, GridView view)
 {
     this.owner = owner;
     this.view = view;
     this.scrollTimer = new Timer();
     this.scrollTimer.Tick += new EventHandler(scrollTimer_Tick);
 }
Example #5
0
 private void EFDevGrid_Load(object sender, EventArgs e)
 {
     try
     {
         foreach (DevExpress.XtraGrid.Views.Base.BaseView baseView in this.Views)
         {
             if (baseView is DevExpress.XtraGrid.Views.Grid.GridView)
             {
                 //为view添加行号显示事件
                 ((DevExpress.XtraGrid.Views.Grid.GridView)baseView).CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView1_CustomDrawRowIndicator);
                 //添加不绑定列[选择列]事件,添加一个选择列
                 ((DevExpress.XtraGrid.Views.Grid.GridView)baseView).CustomUnboundColumnData += new DevExpress.XtraGrid.Views.Base.CustomColumnDataEventHandler(EFDevGrid_CustomUnboundColumnData);
                 this.DefaultViewChanged += new EventHandler(EFDevGrid_DefaultViewChanged);
                 //数据源改变事件
                 this.DataSourceChanged += new EventHandler(EFDevGrid_DataSourceChanged);
                 GetDataSourceTable();//get的时候会顺便设置dtDataSourceTemp
                 if (dtDataSourceTemp != null)
                 {
                     dtDataSourceTemp.RowDeleting += new DataRowChangeEventHandler(dtDataSourceTemp_RowDeleting);
                     dtDataSourceTemp.TableCleared += new DataTableClearEventHandler(dtDataSourceTemp_TableCleared);
                 }
                 //设置自动滚动辅助类对象
                 autoScrollHelper = new AutoScrollHelper(baseView as DevExpress.XtraGrid.Views.Grid.GridView);
                 //设置检查单元格验证事件
                 if (CheckByteLength)
                 {
                     this.MainView.ValidatingEditor -= new DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventHandler(MainView_ValidatingEditor);
                     this.MainView.ValidatingEditor += new DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventHandler(MainView_ValidatingEditor);
                 }
             }
         }
         if (this.LevelTree != null)
         {
             for (int ii = 0; ii < this.LevelTree.Nodes.Count; ii++)
             {
                 DevExpress.XtraGrid.Views.Base.BaseView baseView = this.LevelTree.Nodes[ii].LevelTemplate;
                 if (baseView != null && baseView is DevExpress.XtraGrid.Views.Grid.GridView)
                 {
                     (baseView as DevExpress.XtraGrid.Views.Grid.GridView).CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView1_CustomDrawRowIndicator);
                 }
             }
         }
         //添加选择列
         AddSelectedColumn();
         //初始化弹出菜单
         if (popMenu == null && (this.MainView is DevExpress.XtraGrid.Views.Grid.GridView))
         {
             InitCustomMenu(this.MainView as DevExpress.XtraGrid.Views.Grid.GridView);
             this.MouseDown -= new System.Windows.Forms.MouseEventHandler(this.EFDevGrid_MouseDown);
             this.MouseDown += new MouseEventHandler(EFDevGrid_MouseDown);
         }
         //添加值改变事件--处理多行同时选中或取消选中
         if (gridView1!=null)
         {
             gridView1.RowCellClick += new RowCellClickEventHandler(EFDevGrid_RowCellClick);
             gridView1.TopRowChanged += new EventHandler(gridView1_TopRowChanged);
         }
         //设置行的可编辑属性
         this.MainView.MouseWheel += new MouseEventHandler(MainView_MouseWheel);
         this.MouseDown += new MouseEventHandler(EFDevGrid_MouseDownTemp);
         //this.VisibleChanged += new EventHandler(EFDevGrid_VisibleChanged);
         if (null != this.FindForm())
         {
             this.FindForm().Shown += new EventHandler(EFDevGrid_Shown);
         }
     }
     catch (Exception ex)
     {
         System.Console.WriteLine("EFDevGrid_Load" + ex.Message);
     }
 }
Example #6
0
 /// <summary>
 /// 拖动时移动
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void EFDevGrid_DragOver(object sender, DragEventArgs e)
 {
     try
     {
         Point p = this.PointToClient(new Point(e.X, e.Y));
         GridView view = this.GetViewAt(p) as GridView;
         if (view == null)
             return;
         GridHitInfo downHitInfoTemp = view.CalcHitInfo(p);
         //DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo downHitInfoTemp
         //    = (DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo)this.MainView.CalcHitInfo(p);
         if (downHitInfoTemp.HitTest == GridHitTest.EmptyRow)
         {
             destRowIndex = gridView1.DataRowCount;
         }
         else
         {
             destRowIndex = downHitInfoTemp.RowHandle;
         }
         //destRowIndex = downHitInfoTemp.RowHandle;
         if (autoScrollHelper != null)
         {
             autoScrollHelper.ScrollIfNeeded();
         }
         else
         {
             autoScrollHelper = new AutoScrollHelper(gridView1);
             autoScrollHelper.ScrollIfNeeded();
         }
     }
     catch (Exception ex)
     {
         System.Console.WriteLine(ex.Message);
     }
     finally
     {
         //会画那根线,刷新,触发Pain事件
         Refresh();
     }
 }