.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
类初始化所有屏幕宽度/高度值