// Token: 0x06005D04 RID: 23812 RVA: 0x001A2BA8 File Offset: 0x001A0DA8
 internal void OnHeaderMouseMove(MouseEventArgs e)
 {
     if (e.LeftButton == MouseButtonState.Pressed && this._prepareColumnHeaderDragging)
     {
         this._columnHeaderDragCurrentPosition = e.GetPosition(this);
         if (!this._isColumnHeaderDragging)
         {
             if (DataGridColumnHeadersPresenter.CheckStartColumnHeaderDrag(this._columnHeaderDragCurrentPosition, this._columnHeaderDragStartPosition))
             {
                 this.StartColumnHeaderDrag();
                 return;
             }
         }
         else
         {
             Visibility visibility = this.IsMousePositionValidForColumnDrag(2.0) ? Visibility.Visible : Visibility.Collapsed;
             if (this._columnHeaderDragIndicator != null)
             {
                 this._columnHeaderDragIndicator.Visibility = visibility;
             }
             if (this._columnHeaderDropLocationIndicator != null)
             {
                 this._columnHeaderDropLocationIndicator.Visibility = visibility;
             }
             base.InvalidateArrange();
             DragDeltaEventArgs e2 = new DragDeltaEventArgs(this._columnHeaderDragCurrentPosition.X - this._columnHeaderDragStartPosition.X, this._columnHeaderDragCurrentPosition.Y - this._columnHeaderDragStartPosition.Y);
             this._columnHeaderDragStartPosition = this._columnHeaderDragCurrentPosition;
             this.ParentDataGrid.OnColumnHeaderDragDelta(e2);
         }
     }
 }
        /// <summary>
        /// Coercion callback for Height property.
        /// </summary>
        private static object OnCoerceHeight(DependencyObject d, object baseValue)
        {
            var            columnHeader = (DataGridColumnHeader)d;
            DataGridColumn column       = columnHeader.Column;
            DataGrid       dataGrid     = null;

            // Propagate style changes to any filler column headers.
            if (column == null)
            {
                DataGridColumnHeadersPresenter presenter = columnHeader.TemplatedParent as DataGridColumnHeadersPresenter;
                if (presenter != null)
                {
                    dataGrid = presenter.ParentDataGrid;
                }
            }
            else
            {
                dataGrid = column.DataGridOwner;
            }

            return(DataGridHelper.GetCoercedTransferPropertyValue(
                       columnHeader,
                       baseValue,
                       HeightProperty,
                       dataGrid,
                       DataGrid.ColumnHeaderHeightProperty));
        }
        /// <summary>
        ///     Property changed callback for VirtualizingStackPanel.IsVirtualizing property
        /// </summary>
        private static void OnIsVirtualizingPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            DataGridColumnHeadersPresenter headersPresenter = (DataGridColumnHeadersPresenter)d;

            DataGridHelper.TransferProperty(headersPresenter, VirtualizingPanel.IsVirtualizingProperty);
            if (e.OldValue != headersPresenter.GetValue(VirtualizingPanel.IsVirtualizingProperty))
            {
                headersPresenter.InvalidateDataGridCellsPanelMeasureAndArrange();
            }
        }
示例#4
0
        /// <summary>Provides class handling for the <see cref="E:System.Windows.UIElement.LostMouseCapture" /> routed event that occurs when this control is no longer receiving mouse event messages.</summary>
        /// <param name="e">The event data for the <see cref="E:System.Windows.Input.Mouse.LostMouseCapture" /> event.</param>
        // Token: 0x06005CE6 RID: 23782 RVA: 0x001A2230 File Offset: 0x001A0430
        protected override void OnLostMouseCapture(MouseEventArgs e)
        {
            base.OnLostMouseCapture(e);
            DataGridColumnHeadersPresenter parentPresenter = this.ParentPresenter;

            if (parentPresenter != null)
            {
                parentPresenter.OnHeaderLostMouseCapture(e);
                e.Handled = true;
            }
        }
        protected override void OnMouseMove(MouseEventArgs e)
        {
            base.OnMouseMove(e);

            DataGridColumnHeadersPresenter parentPresenter = ParentPresenter;

            if (parentPresenter != null)
            {
                parentPresenter.OnHeaderMouseMove(e);
                e.Handled = true;
            }
        }
示例#6
0
        /// <summary>Provides class handling for the <see cref="E:System.Windows.UIElement.MouseLeftButtonUp" /> routed event that occurs when the left mouse button is released while the mouse pointer is over this control.</summary>
        /// <param name="e">The event data.</param>
        // Token: 0x06005CE5 RID: 23781 RVA: 0x001A21EC File Offset: 0x001A03EC
        protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
        {
            base.OnMouseLeftButtonUp(e);
            DataGridColumnHeadersPresenter parentPresenter = this.ParentPresenter;

            if (parentPresenter != null)
            {
                if (base.ClickMode == ClickMode.Hover && base.IsMouseCaptured)
                {
                    base.ReleaseMouseCapture();
                }
                parentPresenter.OnHeaderMouseLeftButtonUp(e);
                e.Handled = true;
            }
        }
示例#7
0
        /// <summary>Provides class handling for the <see cref="E:System.Windows.UIElement.MouseLeftButtonDown" /> routed event that occurs when the left mouse button is pressed while the mouse pointer is over this control.</summary>
        /// <param name="e">The event data.</param>
        // Token: 0x06005CE3 RID: 23779 RVA: 0x001A2178 File Offset: 0x001A0378
        protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
        {
            base.OnMouseLeftButtonDown(e);
            DataGridColumnHeadersPresenter parentPresenter = this.ParentPresenter;

            if (parentPresenter != null)
            {
                if (base.ClickMode == ClickMode.Hover && e.ButtonState == MouseButtonState.Pressed)
                {
                    base.CaptureMouse();
                }
                parentPresenter.OnHeaderMouseLeftButtonDown(e);
                e.Handled = true;
            }
        }
        void dgEDetails_LayoutUpdated(object sender, EventArgs e)
        {
            dpEDetails.PageSize = (int)(dgEDetails.ActualHeight / 27);

            if (refreshUI && headers == null)
            {
                dghc = dgEDetails.GetChildrenByType<DataGridColumnHeadersPresenter>().FirstOrDefault();
                foreach (DataGridColumnHeader dgch in dghc.Children)
                {
                    dgch.SizeChanged += (s, args) => { Resize(); };
                }
            }
            if (refreshUI)
                Resize();

            refreshUI = false;
        }
        protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
        {
            base.OnMouseLeftButtonDown(e);

            DataGridColumnHeadersPresenter parentPresenter = ParentPresenter;

            if (parentPresenter != null)
            {
                // If clickmode is hover then during the mouse move the hover events will be sent
                // all the headers in the path. To avoid that we are using a capture
                if (ClickMode == ClickMode.Hover && e.ButtonState == MouseButtonState.Pressed)
                {
                    CaptureMouse();
                }

                parentPresenter.OnHeaderMouseLeftButtonDown(e);
                e.Handled = true;
            }
        }
示例#10
0
        // Token: 0x06005CD8 RID: 23768 RVA: 0x001A201C File Offset: 0x001A021C
        private static object OnCoerceHeight(DependencyObject d, object baseValue)
        {
            DataGridColumnHeader dataGridColumnHeader = (DataGridColumnHeader)d;
            DataGridColumn       column       = dataGridColumnHeader.Column;
            DataGrid             parentObject = null;

            if (column == null)
            {
                DataGridColumnHeadersPresenter dataGridColumnHeadersPresenter = dataGridColumnHeader.TemplatedParent as DataGridColumnHeadersPresenter;
                if (dataGridColumnHeadersPresenter != null)
                {
                    parentObject = dataGridColumnHeadersPresenter.ParentDataGrid;
                }
            }
            else
            {
                parentObject = column.DataGridOwner;
            }
            return(DataGridHelper.GetCoercedTransferPropertyValue(dataGridColumnHeader, baseValue, FrameworkElement.HeightProperty, parentObject, DataGrid.ColumnHeaderHeightProperty));
        }
示例#11
0
文件: DataGrid.cs 项目: JianwenSun/cc
        /// <summary>
        ///     OnTemplateChanged override
        /// </summary>
        protected override void OnTemplateChanged(ControlTemplate oldTemplate, ControlTemplate newTemplate)
        {
            base.OnTemplateChanged(oldTemplate, newTemplate);

            // Our column headers presenter comes from the template.  Clear out the reference to it if the template has changed
            ColumnHeadersPresenter = null;
        }
 /// <summary> 
 /// AutomationPeer for DataGridColumnHeadersPresenter
 /// </summary> 
 /// <param name="owner">DataGridColumnHeadersPresenter</param>
 public DataGridColumnHeadersPresenterAutomationPeer(DataGridColumnHeadersPresenter owner)
     : base(owner)
 { 
 }
        /// <summary>
        /// Builds the visual tree for the column header when a new template is applied.
        /// </summary>
        public override void OnApplyTemplate()
        {
            // The template has changed, so we need to refresh the visuals
            this._measured = false;

            if (this._columnHeadersPresenter != null)
            {
                // If we're applying a new template, we want to remove the old column headers first
                this._columnHeadersPresenter.Children.Clear();
            }
            _columnHeadersPresenter = GetTemplateChild(DATAGRID_elementColumnHeadersPresenterName) as DataGridColumnHeadersPresenter;
            if (_columnHeadersPresenter != null)
            {
                if (this.ColumnsInternal.FillerColumn != null)
                {
                    this.ColumnsInternal.FillerColumn.IsRepresented = false;
                }
                _columnHeadersPresenter.OwningGrid = this;
                // Columns were added before before our Template was applied, add the ColumnHeaders now
                foreach (DataGridColumn column in this.ColumnsItemsInternal)
                {
                    InsertDisplayedColumnHeader(column);
                }
            }

            if (this._rowsPresenter != null)
            {
                // If we're applying a new template, we want to remove the old rows first
                this.UnloadElements(false /*recycle*/);
            }
            _rowsPresenter = GetTemplateChild(DATAGRID_elementRowsPresenterName) as DataGridRowsPresenter;
            if (_rowsPresenter != null)
            {
                _rowsPresenter.OwningGrid = this;
                InvalidateRowHeightEstimate();
                UpdateRowDetailsHeightEstimate();
            }
            _frozenColumnScrollBarSpacer = GetTemplateChild(DATAGRID_elementFrozenColumnScrollBarSpacerName) as FrameworkElement;

            if (_hScrollBar != null)
            {
                _hScrollBar.Scroll -= new ScrollEventHandler(HorizontalScrollBar_Scroll);
            }
            _hScrollBar = GetTemplateChild(DATAGRID_elementHorizontalScrollbarName) as ScrollBar;
            if (_hScrollBar != null)
            {
                _hScrollBar.IsTabStop = false;
                _hScrollBar.Maximum = 0.0;
                _hScrollBar.Orientation = Orientation.Horizontal;
                _hScrollBar.Visibility = Visibility.Collapsed;
                _hScrollBar.Scroll += new ScrollEventHandler(HorizontalScrollBar_Scroll);
            }

            if (_vScrollBar != null)
            {
                _vScrollBar.Scroll -= new ScrollEventHandler(VerticalScrollBar_Scroll);
            }
            _vScrollBar = GetTemplateChild(DATAGRID_elementVerticalScrollbarName) as ScrollBar;
            if (_vScrollBar != null)
            {
                _vScrollBar.IsTabStop = false;
                _vScrollBar.Maximum = 0.0;
                _vScrollBar.Orientation = Orientation.Vertical;
                _vScrollBar.Visibility = Visibility.Collapsed;
                _vScrollBar.Scroll += new ScrollEventHandler(VerticalScrollBar_Scroll);
            }

            _topLeftCornerHeader = GetTemplateChild(DATAGRID_elementTopLeftCornerHeaderName) as ContentControl;
            EnsureTopLeftCornerHeader(); // EnsureTopLeftCornerHeader checks for a null _topLeftCornerHeader;
            _topRightCornerHeader = GetTemplateChild(DATAGRID_elementTopRightCornerHeaderName) as ContentControl;

            if (this._validationSummary != null)
            {
                this._validationSummary.FocusingInvalidControl -= new EventHandler<FocusingInvalidControlEventArgs>(ValidationSummary_FocusingInvalidControl);
                this._validationSummary.SelectionChanged -= new EventHandler<SelectionChangedEventArgs>(ValidationSummary_SelectionChanged);
            }
            this._validationSummary = GetTemplateChild(DATAGRID_elementValidationSummary) as ValidationSummary;
            if (this._validationSummary != null)
            {
                // The ValidationSummary defaults to using its parent if Target is null, so the only
                // way to prevent it from automatically picking up errors is to set it to some useless element.
                if (this._validationSummary.Target == null)
                {
                    this._validationSummary.Target = new Rectangle();
                }

                this._validationSummary.FocusingInvalidControl += new EventHandler<FocusingInvalidControlEventArgs>(ValidationSummary_FocusingInvalidControl);
                this._validationSummary.SelectionChanged += new EventHandler<SelectionChangedEventArgs>(ValidationSummary_SelectionChanged);
                if (DesignerProperties.IsInDesignTool)
                {
                    Debug.Assert(this._validationSummary.Errors != null);
                    // Do not add the default design time errors when in design mode.
                    this._validationSummary.Errors.Clear();
                }
            }

            UpdateDisabledVisual();
        }
        // Token: 0x06005D16 RID: 23830 RVA: 0x001A3244 File Offset: 0x001A1444
        private void FindDisplayIndexAndHeaderPosition(Point startPos, bool findNearestColumn, out int displayIndex, out Point headerPos, out DataGridColumnHeader header)
        {
            Point point = new Point(0.0, 0.0);

            headerPos    = point;
            displayIndex = -1;
            header       = null;
            if (startPos.X < 0.0)
            {
                if (findNearestColumn)
                {
                    displayIndex = 0;
                }
                return;
            }
            double   num                = 0.0;
            double   num2               = 0.0;
            DataGrid parentDataGrid     = this.ParentDataGrid;
            double   averageColumnWidth = parentDataGrid.InternalColumns.AverageColumnWidth;
            bool     flag               = false;
            int      i = 0;

            while (i < parentDataGrid.Columns.Count)
            {
                displayIndex++;
                DataGridColumnHeader dataGridColumnHeader = parentDataGrid.ColumnHeaderFromDisplayIndex(i);
                if (dataGridColumnHeader != null)
                {
                    GeneralTransform generalTransform = dataGridColumnHeader.TransformToAncestor(this);
                    num  = generalTransform.Transform(point).X;
                    num2 = num + dataGridColumnHeader.RenderSize.Width;
                    goto IL_FB;
                }
                DataGridColumn dataGridColumn = parentDataGrid.ColumnFromDisplayIndex(i);
                if (dataGridColumn.IsVisible)
                {
                    num = num2;
                    if (i >= parentDataGrid.FrozenColumnCount && !flag)
                    {
                        num -= parentDataGrid.HorizontalScrollOffset;
                        flag = true;
                    }
                    num2 = num + DataGridColumnHeadersPresenter.GetColumnEstimatedWidth(dataGridColumn, averageColumnWidth);
                    goto IL_FB;
                }
IL_18D:
                i++;
                continue;
IL_FB:
                if (DoubleUtil.LessThanOrClose(startPos.X, num))
                {
                    break;
                }
                if (!DoubleUtil.GreaterThanOrClose(startPos.X, num) || !DoubleUtil.LessThanOrClose(startPos.X, num2))
                {
                    goto IL_18D;
                }
                if (!findNearestColumn)
                {
                    header = dataGridColumnHeader;
                    break;
                }
                double value = (num + num2) * 0.5;
                if (DoubleUtil.GreaterThanOrClose(startPos.X, value))
                {
                    num = num2;
                    displayIndex++;
                }
                if (this._draggingSrcColumnHeader != null && this._draggingSrcColumnHeader.Column != null && this._draggingSrcColumnHeader.Column.DisplayIndex < displayIndex)
                {
                    displayIndex--;
                    break;
                }
                break;
            }
            if (i == parentDataGrid.Columns.Count)
            {
                displayIndex = parentDataGrid.Columns.Count - 1;
                num          = num2;
            }
            headerPos.X = num;
        }
        // Token: 0x06005CFC RID: 23804 RVA: 0x001A2A00 File Offset: 0x001A0C00
        private static object OnCoerceIsVirtualizingProperty(DependencyObject d, object baseValue)
        {
            DataGridColumnHeadersPresenter dataGridColumnHeadersPresenter = d as DataGridColumnHeadersPresenter;

            return(DataGridHelper.GetCoercedTransferPropertyValue(dataGridColumnHeadersPresenter, baseValue, VirtualizingPanel.IsVirtualizingProperty, dataGridColumnHeadersPresenter.ParentDataGrid, DataGrid.EnableColumnVirtualizationProperty));
        }
示例#16
0
        public override void OnApplyTemplate()
        {
            _columnHeadersPresenter = GetTemplateChild(DATAGRID_elementColumnHeadersPresenterName) as DataGridColumnHeadersPresenter;
            if (_columnHeadersPresenter != null)
            {
                _columnHeadersPresenter.OwningGrid = this;
                // Columns were added before before our Template was applied, add the ColumnHeaders now
                foreach (DataGridColumn column in this.ColumnsInternal)
                {
                    InsertDisplayedColumnHeader(column);
                }
            }
            _rowsPresenter = GetTemplateChild(DATAGRID_elementRowsPresenterName) as DataGridRowsPresenter;
            if (_rowsPresenter != null)
            {
                _rowsPresenter.OwningGrid = this;
                InvalidateRowHeightEstimate();
                UpdateRowDetailsHeightEstimate();
            }
            _frozenColumnScrollBarSpacer = GetTemplateChild(DATAGRID_elementFrozenColumnScrollBarSpacerName) as FrameworkElement;
            _hScrollBar = GetTemplateChild(DATAGRID_elementHorizontalScrollbarName) as ScrollBar;
            if (_hScrollBar != null)
            {
                _hScrollBar.IsTabStop = false;
                _hScrollBar.Maximum = 0.0;
                _hScrollBar.Orientation = Orientation.Horizontal;
                _hScrollBar.Visibility = Visibility.Collapsed;
                _hScrollBar.Scroll += new ScrollEventHandler(HorizontalScrollBar_Scroll);
            }
            _vScrollBar = GetTemplateChild(DATAGRID_elementVerticalScrollbarName) as ScrollBar;
            if (_vScrollBar != null)
            {
                _vScrollBar.IsTabStop = false;
                _vScrollBar.Maximum = 0.0;
                _vScrollBar.Orientation = Orientation.Vertical;
                _vScrollBar.Visibility = Visibility.Collapsed;
                _vScrollBar.Scroll += new ScrollEventHandler(VerticalScrollBar_Scroll);
            }

            _topLeftCornerHeader = GetTemplateChild(DATAGRID_elementTopLeftCornerHeaderName) as ContentControl;
            EnsureTopLeftCornerHeader(); // EnsureTopLeftCornerHeader checks for a null _topLeftCornerHeader;
            _topRightCornerHeader = GetTemplateChild(DATAGRID_elementTopRightCornerHeaderName) as ContentControl;
        }