Программно установленное поле текстового блока - PullRequest
7 голосов
/ 14 марта 2012

Мне было интересно, как вы можете установить поле текстового блока программно?У меня есть список строк, которые я хочу назначить каждому текстовому блоку и анимировать каждый из них с интервалом между каждым текстовым блоком.Сейчас все текстовые блоки находятся на одной строке, поэтому я не могу разобрать, что говорит текст.

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

Ответы [ 2 ]

20 голосов
/ 14 марта 2012

Вы можете установить свойство 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 голосов
/ 14 марта 2012

См. Свойство маржи здесь .

tb.Margin = new Thickness(10);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...