Ejemplo n.º 1
0
        protected override SizeF MeasureOverride(SizeF availableSize)
        {
            SizeF desiredSize = Size.Empty;
            PropertyGridGroupElement visualItem = this.VisualItem as PropertyGridGroupElement;
            PropertyGridTableElement propertyGridTableElement = this.PropertyGridTableElement;

            if (propertyGridTableElement != null && visualItem != null)
            {
                PropertyGridGroupItem groupDataItem = visualItem.Data as PropertyGridGroupItem;
                if (groupDataItem != null)
                {
                    desiredSize.Width = propertyGridTableElement.ItemIndent;
                    if (float.IsPositiveInfinity(availableSize.Height))
                    {
                        desiredSize.Height = propertyGridTableElement.ItemHeight;
                    }
                    else
                    {
                        desiredSize.Height = availableSize.Height;
                    }
                }
            }

            return(desiredSize);
        }
Ejemplo n.º 2
0
        public virtual void Synchronize()
        {
            if (this.VisualItem is PropertyGridItemElement)
            {
                PropertyGridItemElement visualItem = VisualItem as PropertyGridItemElement;

                if (visualItem != null)
                {
                    this.IsExpanded = visualItem.Data.Expanded;
                    this.IsSelected = visualItem.IsSelected;

                    PropertyGridItem dataItem = visualItem.Data as PropertyGridItem;

                    if (dataItem.Expandable)
                    {
                        this.expanderItem.Visibility = ElementVisibility.Visible;
                    }
                    else
                    {
                        this.expanderItem.Visibility = ElementVisibility.Hidden;
                    }
                }

                bool isInEditMode = visualItem.IsInEditMode;
                if (isInEditMode && visualItem.Data.Level == 0 && visualItem.Data.GridItems.Count > 0)
                {
                    isInEditMode = false;
                }

                this.SetValue(IsInEditModeProperty, isInEditMode);
            }

            if (this.VisualItem is PropertyGridGroupElement)
            {
                PropertyGridGroupElement visualItem = VisualItem as PropertyGridGroupElement;

                if (visualItem != null)
                {
                    this.IsExpanded = visualItem.Data.Expanded;
                    this.IsSelected = visualItem.IsSelected;

                    PropertyGridGroupItem dataItem = visualItem.Data as PropertyGridGroupItem;

                    if (dataItem.GridItems.Count == 0)
                    {
                        this.expanderItem.Visibility = ElementVisibility.Hidden;
                    }
                    else
                    {
                        this.expanderItem.Visibility = ElementVisibility.Visible;
                    }
                }
            }

            this.UpdateSignImage();
        }
        public override AccessibleObject HitTest(int x, int y)
        {
            PropertyGridGroupElement elementAtPoint = this.Control.RootElement.ElementTree.GetElementAtPoint(this.Control.PointToClient(new Point(x, y))) as PropertyGridGroupElement;

            if (elementAtPoint != null)
            {
                return((AccessibleObject) new PropertyGridCellAccessibleObject(elementAtPoint.Data.Label, (PropertyGridItemBaseAccessibleObject)this));
            }
            return(base.HitTest(x, y));
        }
Ejemplo n.º 4
0
        protected override SizeF MeasureOverride(SizeF availableSize)
        {
            SizeF empty = (SizeF)Size.Empty;
            PropertyGridGroupElement visualItem       = this.VisualItem as PropertyGridGroupElement;
            PropertyGridTableElement gridTableElement = this.PropertyGridTableElement;

            if (gridTableElement != null && visualItem != null && visualItem.Data is PropertyGridGroupItem)
            {
                empty.Width  = (float)gridTableElement.ItemIndent;
                empty.Height = !float.IsPositiveInfinity(availableSize.Height) ? availableSize.Height : (float)gridTableElement.ItemHeight;
            }
            return(empty);
        }