コード例 #1
0
        internal override void ApplyDecoratorProperties(SelectionRegionModel decorator, DecorationType decorationType)
        {
            var pair = decorator.Container as Tuple <FrameworkElement, FrameworkElement>;

            if (pair.Item1 != null)
            {
                Canvas.SetZIndex(pair.Item1, ZIndexConstants.SelectionControlBackgroundBaseZIndex);
            }

            if (pair.Item2 != null)
            {
                Canvas.SetZIndex(pair.Item2, ZIndexConstants.SelectionControlBorderBaseZIndex);
            }
        }
コード例 #2
0
        internal override RadRect ArrangeDecorator(SelectionRegionModel decorator, RadRect radRect)
        {
            var pair = decorator.Container as Tuple <FrameworkElement, FrameworkElement>;

            var backgroundControl = pair.Item1 as SelectionRegionBackgroundControl;
            var borderControl     = pair.Item2 as SelectionRegionBorderControl;

            if (borderControl == null || backgroundControl == null)
            {
                return(radRect);
            }

            double horizontalLineThickness = 0;

            if ((this.Owner.GridLinesVisibility & GridLinesVisibility.Horizontal) == GridLinesVisibility.Horizontal)
            {
                int nextItemId = decorator.SelectionInfo.EndItem.RowItemInfo.Id + 1;
                var nextItem   = this.Owner.Model.RowPool.GetDisplayedElement(nextItemId);
                if (nextItem != null && !nextItem.ItemInfo.IsCollapsible)
                {
                    horizontalLineThickness = this.Owner.GridLinesThickness;
                }
            }

            var left = radRect.X;
            var top  = radRect.Y;

            var arrangeRect = new Rect(left, top, radRect.Width, radRect.Height + horizontalLineThickness);

            Canvas.SetLeft(borderControl, arrangeRect.X);
            Canvas.SetTop(borderControl, arrangeRect.Y);

            borderControl.Width  = arrangeRect.Width;
            borderControl.Height = arrangeRect.Height;

            Canvas.SetLeft(backgroundControl, arrangeRect.X);
            Canvas.SetTop(backgroundControl, arrangeRect.Y);

            backgroundControl.Width  = arrangeRect.Width;
            backgroundControl.Height = arrangeRect.Height;

            return(arrangeRect.ToRadRect());
        }
コード例 #3
0
 internal abstract RadRect ArrangeDecorator(SelectionRegionModel decorator, RadRect radRect);
コード例 #4
0
 internal abstract void ApplyDecoratorProperties(SelectionRegionModel decorator, DecorationType decoratorElementType);