如何将XAML代码从Window移动到Application.Resources

时间:2018-02-21 12:33:27

标签: c# wpf vb.net

以下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个窗口工作?

1 个答案:

答案 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}}">