Esempio n. 1
0
        /// <summary>
        /// Handles the GlyphDrawing event of the renderer control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="args">The <see cref="Syncfusion.Windows.Controls.Grid.GridTreeGlyphDrawingEventArgs"/> instance containing the event data.</param>
        void renderer_GlyphDrawing(object sender, GridTreeGlyphDrawingEventArgs args)
        {
            GridTreeExpanderCellRendererExt renderer = sender as GridTreeExpanderCellRendererExt;

            if (renderer != null)
            {
                //code that draws a circle....
                PathGeometry pg  = args.Geometry;
                Point        pt0 = args.StartPoint;
                if (args.IsHot)
                {
                    pt0.Offset(1, 5);
                }
                else
                {
                    pt0.Offset(0, 4);
                }
                PathFigure pf = new PathFigure();
                pf.StartPoint = pt0;
                pf.IsClosed   = false;
                pf.IsFilled   = !args.Opened;
                double r = args.IsHot ? 4 : 5; //raduis
                pt0.Offset(0, .001);           //make it essentially a full circle
                ArcSegment seg = new ArcSegment(pt0, new Size(r, r), 0, true, SweepDirection.Clockwise, true);
                pf.Segments.Add(seg);

                pg.Figures.Add(pf);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Invokes the specified parameter.
        /// </summary>
        /// <param name="parameter">The parameter.</param>
        protected override void Invoke(object parameter)
        {
            bool customDrawingEventHooked = false;
            var  treeGrid = this.TargetObject as GridTreeControl;

            if (treeGrid.InternalGrid != null)
            {
                if ((parameter as SelectionChangedEventArgs).AddedItems[0] != null)
                {
                    GridTreeExpandGlyph Item = (GridTreeExpandGlyph)((parameter as SelectionChangedEventArgs).AddedItems[0]);
                    treeGrid.InternalGrid.ExpandGlyphType = Item;
                }

                if (treeGrid.InternalGrid.ExpandGlyphType == GridTreeExpandGlyph.Custom)
                {
                    //need to subscribe to an event and provide the Glyph, bout on subscribe the first time...
                    if (!customDrawingEventHooked)
                    {
                        GridTreeExpanderCellRendererExt renderer = treeGrid.InternalGrid.CellRenderers["ExpanderCell"] as GridTreeExpanderCellRendererExt;
                        if (renderer != null)
                        {
                            renderer.GlyphDrawing   += new GridTreeGlyphDrawingHandler(renderer_GlyphDrawing);
                            customDrawingEventHooked = true;
                        }
                    }
                }
                SetColorsBasedOnComboBox();
            }
        }