コード例 #1
0
        internal void ArrangeCell(GridCellEditorModel cell)
        {
            var pair = cell.Container as Tuple <FrameworkElement, FrameworkElement, FrameworkElement>;

            if (pair == null || pair.Item2 == null)
            {
                return;
            }

            RadRect layoutSlot = cell.Column.ApplyLayoutSlotAlignment(cell);

            var rect = this.Owner.InflateEditCellHorizontally(cell, layoutSlot);

            rect = this.Owner.InflateEditCellVertically(cell, rect);

            if (this.Owner.EditRowLayer.EditorLayoutSlots.ContainsKey(cell))
            {
                this.Owner.EditRowLayer.EditorLayoutSlots[cell] = rect;
            }
            else
            {
                this.Owner.EditRowLayer.EditorLayoutSlots.Add(cell, rect);
            }

            pair.Item2.Arrange(rect.ToRect());

            if (this.focusFirstEditor)
            {
                var control = pair.Item1 as Control;
                if (control != null && control.IsTabStop)
                {
                    control.Focus(FocusState.Programmatic);
                }

                this.focusFirstEditor = false;
            }
        }
コード例 #2
0
 internal Size MeasureCell(GridCellEditorModel cell, double availableWidth)
 {
     return(cell.Column.MeasureEditCell(cell, availableWidth).ToSize());
 }