2012-03-14 61 views
5

我想知道如何以编程方式设置文本块的保证金?我有一个字符串列表,我想分配给每个文本块,并在每个文本块之间用一个间距为每个文本块设置动画。就在现在,所有的文本块都在同一行,所以我无法弄清楚文本所说的内容。以编程方式设置文本块保证金

foreach (var i in item.Items) 
{ 
    TextBlock tb = new TextBlock(); 
    tb.Height = 50; 
    tb.Width = 900; 
    tb.Text = i.Title + "\n"; 

    SlideDown(tb); 
    canvas.Children.Add(tb); 
} 

public void SlideDown(FrameworkElement uc) 
{ 
    ThicknessAnimation tAnimation = new ThicknessAnimation(); 
    tAnimation.Duration = new Duration(TimeSpan.FromSeconds(5.0)); 
    tAnimation.From = new Thickness(0,0,0,0); 
    tAnimation.To = new Thickness(0, 500, 0, 500); 
    Storyboard.SetTarget(tAnimation, uc); 
    Storyboard.SetTargetProperty(tAnimation, new PropertyPath(FrameworkElement.MarginProperty)); 
    Storyboard storyboard = new Storyboard(); 
    storyboard.Children.Add(tAnimation); 
    storyboard.Begin(uc); 
} 

回答

15

您可以设置Margin属性是这样的:

double left = 1, top = 2, right = 3, bottom = 4; 
    textBlock.Margin = new Thickness(left, top, right, bottom); 

,或者您可以指定适用于所有上述单个值:

double all = 5; 
    textBlock.Margin = new Thickness(all); 
3

请参阅保证金属性here

tb.Margin = new Thickness(10); 
+0

我试过了,但所有的文字仍然在同一行? – Michael 2012-03-14 18:24:12

+1

实际上没有,这是正确的,但我必须在添加每个文本块之后递增地增加边距,以便文本位于不同边距上。不管怎么说,还是要谢谢你。 :) – Michael 2012-03-14 18:26:26

+0

很高兴它帮助! – 2012-03-14 18:29:33

相关问题