C#   .Net为什么把Shape加到VisualCollection不显示
各位仁兄,我现在要把一个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>