以下xaml代码在Window中运行良好。
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard Duration="00:00:2" Storyboard.TargetProperty="Opacity">
<DoubleAnimation From="0" To="1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Window.Triggers>
我的WPF应用程序中有五个WPF Windows。
我不想将上面的代码放到每个WPF Windows中。
那么,如何将上面的代码放到Application.Resources中以便为5个窗口工作?
答案 0 :(得分:3)
首先,让我们从你的触发器开发一个合适的Style
:
<Style TargetType="{x:Type Window}">
<Style.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard Duration="00:00:2" Storyboard.TargetProperty="Opacity">
<DoubleAnimation From="0" To="1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
此样式可以放在应用程序资源中。
现在的问题是,您的窗口不会使用资源的默认样式,因此需要明确应用它(有关详细信息,请参阅How to set default WPF Window Style in app.xaml?)
<Window ... Style="{StaticResource {x:Type Window}}">