Как я могу преобразовать этот триггер TextBlock в стиль - PullRequest
1 голос
/ 27 мая 2009

Этот XAML заставляет текст исчезать при его появлении.

Я бы хотел добавить эту функциональность в стиль.

Однако, но что я могу вставить для «TargetName», поскольку стиль не знает, какой элемент будет его использовать?

Как я могу преобразовать этот эффект постепенного изменения в стиль?

<TextBlock Name="Message" Text="This is a test.">
  <TextBlock.Triggers>
    <EventTrigger RoutedEvent="TextBlock.Loaded">
      <BeginStoryboard>
        <Storyboard>
          <DoubleAnimation
            Storyboard.TargetName="Message" 
            Storyboard.TargetProperty="(TextBlock.Opacity)"
            From="0.0" To="1.0" Duration="0:0:3"/>
        </Storyboard>
      </BeginStoryboard>
    </EventTrigger>
  </TextBlock.Triggers>
</TextBlock>

1 Ответ

5 голосов
/ 27 мая 2009

Вам не нужно использовать TargetName. Это работает:

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Page.Resources>
    <Style TargetType="TextBlock">
      <Style.Triggers>
        <EventTrigger RoutedEvent="TextBlock.Loaded">
          <BeginStoryboard>
            <Storyboard>
              <DoubleAnimation
                Storyboard.TargetProperty="(TextBlock.Opacity)"
                From="0.0" To="1.0" Duration="0:0:3"/>
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
      </Style.Triggers>
    </Style>  
  </Page.Resources>
  <Grid>
    <TextBlock Name="Message" Text="This is a test.">
    </TextBlock>
  </Grid>
</Page>
...