WPF Window fadeIn не работает - PullRequest
1 голос
/ 24 мая 2011

У меня есть следующий код:

<Window.Background>
    <SolidColorBrush Opacity="0.7" Color="White" x:Name="BackgroundBrush"></SolidColorBrush>
</Window.Background>
<Window.Triggers>
    <EventTrigger RoutedEvent="Loaded">
        <EventTrigger.EnterActions>
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:5" Storyboard.TargetName="BackgroundBrush" From="0.7">
                    </DoubleAnimation>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger.EnterActions>
    </EventTrigger>
</Window.Triggers>

Но ничего не произошло, когда показывается окно. Почему?

Ответы [ 2 ]

2 голосов
/ 24 мая 2011
  1. Вы должны анимировать непрозрачность самого окна, а не фона.
  2. Вам необходимо установить AllowsTransparency на true, что также требует установки WindowStyle на None. (Вам нужно создать свои собственные стандартные оконные кнопки)
1 голос
/ 24 мая 2011

В дополнение к тому, что сказал HB, вам нужно добавить свою BeginStoryboard в коллекцию EventTrigger.Actions , а не коллекцию EnterActions.Так что это работает:

<Window.Background>
    <SolidColorBrush Opacity="0.7" Color="White" x:Name="BackgroundBrush"></SolidColorBrush>
</Window.Background>
<Window.Triggers>
    <EventTrigger RoutedEvent="Loaded">
        <EventTrigger.Actions>
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:5" Storyboard.TargetName="BackgroundBrush" From="0.7">
                    </DoubleAnimation>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger.Actions>
    </EventTrigger>
</Window.Triggers>
...