2010-08-03 68 views
0

我是新來的wpf.I想要應用r1,r2,r3,r4,e1,e2的動畫。我必須在我的.xaml文件中訪問這些對象名稱來編寫故事板,以便我可以應用動畫。如何在.xaml文件中訪問這些對象名稱?你可以給我品嚐applicationsfor如何創建動態對象以及如何訪問它變成的.xaml用於應用動畫我如何從代碼後面的動態對象訪問.xaml文件?

這是我的.cs的一部分文件

namespace WpfApplication1 
{ 
    /// <summary> 
    /// Interaction logic for Window1.xaml 
    /// </summary> 
    public partial class Window1 : Window 
    { 
     Rectangle r1, r2, r3, r4; 
     Ellipse e1, e2;  
     Shape contact,lvi; 
     int flag=0; 
     Point startPoint,cp; 
     private Point enterPoint,p; 
     public Window1() 
     { 
      InitializeComponent(); 
     } 

     . 
     . 
     . 
     . 
     . 

    private void Canvas_Drop(object sender, DragEventArgs e) 
    { 
     if (e.Data.GetDataPresent("MyFormat")) 
     { 
      contact = e.Data.GetData("MyFormat") as Shape; 
      Canvas CanvasView = sender as Canvas; 
      //MessageBox.Show(contact.GetType().ToString()); 
      string savedObject = XamlWriter.Save(contact); 
      StringReader stringReader = new StringReader(savedObject); 
      XmlReader xmlReader = XmlReader.Create(stringReader); 
      lvi = (Shape)XamlReader.Load(xmlReader); 



      if (contact is Rectangle && contact.Name == "rect1" && r1 == null) 
      { 
       r1 = (Rectangle)lvi; 
       r1.Margin = new Thickness(151, 129, 0, 0); 
       CanvasView.Children.Add(r1); 


      } 
      else 
      if (contact is Rectangle && contact.Name == "rect2" && r2 == null) 
      { 
       r2 = (Rectangle)lvi; 
       r2.Margin = new Thickness(122, 142, 0, 0); 
       canvas1.Children.Add(r2); 
      } 
      else 
      if (contact is Rectangle && contact.Name == "rect3" && r3 == null) 
      { 
       r3 = (Rectangle)lvi; 
       r3.Margin=new Thickness(132,225,0,0); 
       canvas1.Children.Add(r3); 
      } 
      else 
      if (contact is Rectangle && contact.Name == "rect4" && r4==null) 
      { 
       r4 = (Rectangle)lvi; 
       r4.Margin = new Thickness(177, 225,0,0); 
       canvas1.Children.Add(r4); 
      } 
      else 
      if (contact is Ellipse && contact.Name == "ellipse1" && e1==null) 
      { 
       e1 = (Ellipse)lvi; 
       e1.Margin=new Thickness(123,74,0,0); 
       canvas1.Children.Add(e1); 
       // e1.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(ellipse_MouseLeftButtonDown); 
      } 
      else 
      if (contact is Ellipse && contact.Name == "ellipse2" && e2 == null) 
      { 
       e2 = (Ellipse)lvi; 
       e2.Margin = new Thickness(324, 214, 0, 0); 
       canvas1.Children.Add(e2); 
      } 
      else 
      { 
       MessageBox.Show("can not drop this item"); 
      } 
     } 
     } 
} 

}

回答

0

在XAML你只能綁定到公共屬性,或使用值轉換器。

相關問題