问题描述
|
我有以下代码:
<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
。 (您需要创建自己的标准窗口按钮)