各位仁兄,我现在要把一个Shape rect元素加入到一个从Adorner继承过来的类BaseGraphTool中,BaseGraphTool中用一个VisualCollection对象存储这个rect,然后我又要把A加入到另一个从Adorner继承过来的类BaseManipulator中,但是现在的问题是类BaseManipulator显示了,但加到类BaseManipulator中的BaseGraphTool却没有显示,希望各位仁兄给出高见,在下感激涕零。以下是具体代码:
    public class BaseGraphTool:Adorner
    {
        protected VisualCollection visualChildren;        public BaseGraphTool():base(new UIElement())
        {
            Initialize();
        }
        public BaseGraphTool(UIElement e):base(e)
        {
            Initialize();
        }
        void Initialize()
        {
            visualChildren=new VisualCollection(this);
            visualChildren.Clear();
            Rectangle rect = new Rectangle();
            Canvas.SetLeft(rect, 0);
            Canvas.SetTop(rect, 0);
            rect.Width = 50;
            rect.Height = 20;
            rect.Fill = Brushes.Red;
            rect.Stroke = Brushes.Black;
            rect.Stretch = Stretch.Fill;
            visualChildren.Add(rect);
        }        protected override int  VisualChildrenCount
        {
        get 
        { 
         return visualChildren.Count;
        }
        }
        protected override Visual  GetVisualChild(int index)
        {
           return visualChildren[index];
        }
    }
/////////////////////////////////////////////////////////////////////////////////////////    public class BaseManipulator :Adorner
    {
        
        /// <summary>
        /// Container for manipulator controlls
        /// </summary>
        protected VisualCollection visualChildren;
        /// <summary>
        /// 
        /// </summary>
        protected System.Windows.Controls.Canvas mainCanvas;
        /// <summary>
        /// 
        /// </summary>
        /// <param name="element"></param>
        public BaseManipulator(UIElement element)
            : base(element)
        {
            if (!(AdornedElement.RenderTransform is TransformGroup))
            {
                TransformGroup t = new TransformGroup();
                t.Children.Add(new MatrixTransform());
                t.Children.Add(new RotateTransform());
                AdornedElement.RenderTransform = t;
                AdornedElement.RenderTransformOrigin = new Point(0.5, 0.5);
                
            }
            ThumbsResources tr = new ThumbsResources();
            tr.InitializeComponent();
            Resources = tr;
            this.Visibility = Visibility.Collapsed;                       
            visualChildren = new VisualCollection(this);
            BaseGraphTool b=new BaseGraphTool();
            visualChildren.Add(b);

       
    }
        /// <summary>
        /// 
        /// </summary>
        protected override int VisualChildrenCount { get { return visualChildren.Count; } }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="index"></param>
        /// <returns></returns>
        protected override Visual GetVisualChild(int index) { return visualChildren[index]; }
}