Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 窗口状态最大化时加载的窗口动画_.net_Wpf - Fatal编程技术网

.net 窗口状态最大化时加载的窗口动画

.net 窗口状态最大化时加载的窗口动画,.net,wpf,.net,Wpf,当窗口加载以下代码时,我正在应用滑入动画: <Window.Triggers> <EventTrigger RoutedEvent="Window.Loaded"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard BeginTime="0" Duration="0:0:1">

当窗口加载以下代码时,我正在应用滑入动画:

<Window.Triggers>
    <EventTrigger RoutedEvent="Window.Loaded">
        <EventTrigger.Actions>
            <BeginStoryboard>
                <Storyboard BeginTime="0" Duration="0:0:1">

                    <DoubleAnimation Storyboard.TargetName="parent" Storyboard.TargetProperty="(Window.Left)" From="1920" To="0" AutoReverse="true" BeginTime="0:0:0" Duration="0:0:1" />
                </Storyboard>
            </BeginStoryboard>


        </EventTrigger.Actions>
    </EventTrigger>
</Window.Triggers>


它工作正常,但当我在主窗口中启用WindowState=“Maximized”时,动画不起作用。

这是Windows中的限制,而不是WPF-当窗口最大化时,您不能更改窗口的位置。动画确实会运行(左<代码>值更改),但没有效果

您可以在窗口处于
Normal
状态时设置窗口动画,并在动画完成后将其最大化:

<Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:app="clr-namespace:WpfApp"
        Name="parent"
        WindowState="Normal"
        Top="0"
        Left="{x:Static SystemParameters.FullPrimaryScreenWidth}"
        Width="{x:Static SystemParameters.FullPrimaryScreenWidth}"
        Height="{x:Static SystemParameters.FullPrimaryScreenHeight}"
        d:DataContext="{d:DesignData ViewModel}">
    <Window.Triggers>
        <EventTrigger RoutedEvent="Window.Loaded">
            <EventTrigger.Actions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetName="parent"
                                         Storyboard.TargetProperty="(Window.Left)"
                                         To="0"
                                         Duration="0:0:1" />
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="parent"
                                                       Storyboard.TargetProperty="WindowState">
                            <DiscreteObjectKeyFrame Value="{x:Static WindowState.Maximized}"
                                                    KeyTime="0:0:1" />
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger.Actions>
        </EventTrigger>
    </Window.Triggers>

注意:此代码仅适用于带有单个监视器的系统。否则,您必须使用Windows窗体
screen
类初始化所有屏幕宽度/高度值