WPF窗口fadeIn无效

问题描述

| 我有以下代码
<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>
但是当显示窗口时什么也没有发生。为什么?     

解决方法

除了什么H.B.说,您需要将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>
    ,您必须设置窗口本身而不是背景的不透明度的动画。 您需要将
AllowsTransparency
设置为
true
,这也需要将
WindowStyle
设置为
None
。 (您需要创建自己的标准窗口按钮)