2011-03-09 70 views
1

这里我有一个标签的XAML,但我想用C#定义它。如何动态定义此标签?

任何人都可以帮我翻译这到C#所以我可以在运行时创建此标签?

它所在的画布被称为left_canvas

<Label Canvas.Left="10" Canvas.Top="10" Canvas.Right="10" Height="30" Width="280" 
     Name="classname_label" FontFamily="MS Reference Sans Serif" FontSize="16" 
     FontWeight="Bold" Foreground="#FF3535A0" Content="Physics 101" /> 
+0

我没有尝试任何事情,因为我不知道从哪里开始 – Mike 2011-03-09 22:22:24

回答

1

有你go.Hope这个Helps.Working和测试

  BrushConverter bc = new BrushConverter(); 
      Label classname_label = new Label(); 
      classname_label.Content = "Physics 101"; 
      classname_label.Foreground = (Brush)bc.ConvertFrom("#FF3535A0"); 
      Canvas.SetLeft(classname_label, 10); 
      Canvas.SetTop(classname_label, 10); 
      Canvas.SetRight(classname_label, 10); 
      classname_label.Height=30; 
      classname_label.Width=280; 
      classname_label.FontFamily =new System.Windows.Media.FontFamily("MS Reference Sans Serif"); 
      classname_label.FontSize=16; 
      classname_label.FontWeight = System.Windows.FontWeights.Bold; 
      //Control you want to contain label 
      left_canvas.Controls.Add(classname_label); 
+0

谢谢!这是我得到的最有用的回应!What's BrushConverter bc = new BrushConverter();做Forground? – Mike 2011-03-09 22:21:20

+0

欢迎。它用于将值转换为前景色 – 2011-03-10 09:50:16

0

您可以创建一个新的Label实例并简单地设置您列出的所有属性。

Label label = new Label(); 

label.Height = new Unit(30, UnitType.Pixel); 
... 
label.Content = "Physics 101"; 

//Set the dependency properties. 
label.SetValue(Canvas.Left, 10); 
... 
label.SetValue(Canvas.Top, 10); 

//Add it to the canvas. 
left_canvas.Controls.Add(label); 

或者这样做,属性名称和依赖项属性名称可能不准确,因为它来自内存。

1

你需要像这样

Label label1 = new Label(); 
label1.Content = "Physics 101"; 
label1.Width = 280; 
label1.Height = 30; 
label1.SetValue(Canvas.LeftProperty, 10.0); 
left_canvas.Children.Add(label1); 
+0

怎么办我做fontFamily和fontWeight? – Mike 2011-03-09 22:06:10