2012-03-14 38 views
5

Tôi đã tự hỏi làm thế nào bạn có thể đặt lề của textblock theo lập trình? Tôi có một danh sách các chuỗi, mà tôi muốn gán cho mỗi textblock và animate mỗi một với một khoảng cách ở giữa mỗi textblock. Ngay bây giờ, tất cả các textblocks đều nằm trên cùng một dòng, vì vậy tôi không thể nói ra những gì văn bản nói.Lập trình lề văn bản có lập trình

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); 
} 

Trả lời

15

Bạn có thể đặt Margin bất động sản như thế này:

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

hoặc bạn có thể chỉ định một giá trị duy nhất áp dụng cho tất cả trên:

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

Tham chiếu đến thuộc tính ký quỹ here.

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

Tôi cố gắng đó, nhưng tất cả các văn bản vẫn còn trên cùng một dòng? – Michael

+1

Trên thực tế không, nó là chính xác, nhưng tôi phải tăng dần lợi nhuận sau khi tôi thêm mỗi textblock để văn bản là trên lề khác nhau. Dù sao cũng cảm ơn bạn. :) – Michael

+0

vui vì nó đã giúp! –

Các vấn đề liên quan