コード例 #1
0
        protected virtual void DrawSelection(Graphics g, Rectangle r, Color?c = null)
        {
            bool fakeNative = SelectionRenderStyle == DynamicTreeViewRenderStyle.Native && c != null;

            if (SelectionRenderStyle == DynamicTreeViewRenderStyle.Native && c == null)
            {
                VisualStyleRenderer renderer = Focused ? ExplorerViewStyle.ItemSelect : ExplorerViewStyle.ItemSelectNoFocus;
                renderer.DrawBackground(g, r);
            }

            if (c == null)
            {
                c = Focused ? FakeNativeTreeStyleRenderer.SelectionColor : FakeNativeTreeStyleRenderer.NoFocusSelectionColor;
            }

            if (SelectionRenderStyle == DynamicTreeViewRenderStyle.FakeNative || fakeNative)
            {
                FakeNativeTreeStyleRenderer.DrawSelection(g, r, c.Value);
            }
            else if (SelectionRenderStyle == DynamicTreeViewRenderStyle.Simple)
            {
                g.FillRectangle(new SolidBrush(FakeNativeTreeStyleRenderer.AlphaBlend(50, c.Value)), r);
                g.DrawRectangle(new Pen(c.Value, 1.0f), r);
            }
        }
コード例 #2
0
        protected virtual void DrawHighlight(Graphics g, Rectangle r, Color?c = null)
        {
            bool fakeNative = SelectionRenderStyle == DynamicTreeViewRenderStyle.Native && c != null;

            if (SelectionRenderStyle == DynamicTreeViewRenderStyle.Native && c == null)
            {
                VisualStyleRenderer renderer = ExplorerViewStyle.ItemHover;
                renderer.DrawBackground(g, r);
            }

            if (c == null)
            {
                c = Color.FromArgb(100, FakeNativeTreeStyleRenderer.SelectionColor);
            }
            else
            {
                c = FakeNativeTreeStyleRenderer.AlphaBlend(100, c.Value);
            }

            if (SelectionRenderStyle == DynamicTreeViewRenderStyle.FakeNative || fakeNative)
            {
                FakeNativeTreeStyleRenderer.DrawSelection(g, r, c.Value);
            }
            else if (SelectionRenderStyle == DynamicTreeViewRenderStyle.Simple)
            {
                g.FillRectangle(new SolidBrush(FakeNativeTreeStyleRenderer.AlphaBlend(50, c.Value)), r);
                g.DrawRectangle(new Pen(c.Value, 1.0f), r);
            }
        }
コード例 #3
0
        protected virtual void DrawArrow(Graphics g, Rectangle r, bool expanded, bool highlighted)
        {
            VisualStyleRenderer renderer = null;

            if (ArrowRenderStyle == DynamicTreeViewRenderStyle.Native)
            {
                if (highlighted)
                {
                    renderer = expanded ? ExplorerViewStyle.OpenedHover : ExplorerViewStyle.ClosedHover;
                }
                else
                {
                    renderer = expanded ? ExplorerViewStyle.Opened : ExplorerViewStyle.Closed;
                }
            }
            else if (ArrowRenderStyle == DynamicTreeViewRenderStyle.Simple)
            {
                renderer = new VisualStyleRenderer(expanded ? VisualStyleElement.TreeView.Glyph.Opened : VisualStyleElement.TreeView.Glyph.Closed);
            }

            if (renderer != null)
            {
                renderer.DrawBackground(g, r);
            }
            else
            {
                FakeNativeTreeStyleRenderer.DrawArrow(g, r, expanded, highlighted);
            }
        }