int FadeOut;
for (FadeOut = 90; FadeOut >= 10; FadeOut += -10)
{
this.Opacity = FadeOut / 100;
this.refresh();
System.Threading.Thread.Sleep(50);
}
我做了类似的事情但没有工作 // this.refresh(); 不管用
int FadeOut;
for (FadeOut = 90; FadeOut >= 10; FadeOut += -10)
{
this.Opacity = FadeOut / 100;
this.refresh();
System.Threading.Thread.Sleep(50);
}
我做了类似的事情但没有工作 // this.refresh(); 不管用
这里讨论了同样的问题。
您也可以使用触发器:事件触发器或数据触发器来启动动画,以及动画的 Completed 事件来设置动画结束时的回调。这是数据触发器(您的数据上下文中应该有 FadeOut 属性)
<Window.Resources>
<Storyboard x:Key="FadeOut">
<DoubleAnimation From="0" To="1" Storyboard.TargetProperty="(UIElement.Opacity)" Duration="0:0:1.5"/>
</Storyboard>
</Window.Resources>
<Window.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=FadeOut}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource FadeOut}"/>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Style>
我做了这样的事情,你可以继续努力。
不幸的是,您必须实现自己的 Window 标题栏:
<Window x:Class="WpfApplication2.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"
Name="myWindow" WindowStyle="None" AllowsTransparency="True"
>
<Window.Resources>
</Window.Resources>
<Grid>
<Button Margin="337,0,0,155">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard >
<Storyboard Duration="0:0:5">
<DoubleAnimation Storyboard.TargetName="myWindow" Storyboard.TargetProperty="Opacity" From="1" To="0"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
</Grid>
</Window>