WPF实现淡入淡出效果

淡入淡出的功能可以通过WPF中的动画调整控件的透明度来实现。

xaml代码如下:

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="20" />
            <RowDefinition Height="200" />
            <RowDefinition />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <Image x:Name="image_monkey" Width="200" Height="200" Source="Images/monkey.jpg" Grid.ColumnSpan="2" Grid.Row="1" />
        <Button x:Name="btn_danru" Width="50" Height="20" Grid.Column="0" Grid.Row="2" Click="btn_danru_Click">淡入</Button>
        <Button x:Name="btn_danchu" Width="50" Height="20" Grid.Column="1" Grid.Row="2" Click="btn_danchu_Click">淡出</Button>
    </Grid>

C#代码如下:

private void btn_danru_Click(object sender, RoutedEventArgs e) {
            DoubleAnimation daV = new DoubleAnimation(0,1,new Duration(TimeSpan.FromSeconds(1)));
            this.image_monkey.BeginAnimation(UIElement.OpacityProperty, daV);
        }

        private void btn_danchu_Click(object sender, RoutedEventArgs e) {
            DoubleAnimation daV = new DoubleAnimation(1, 0, new Duration(TimeSpan.FromSeconds(1)));
            this.image_monkey.BeginAnimation(UIElement.OpacityProperty, daV);
        }

运行界面如图:

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
WPF中,可以使用XAML和C#代码来实现渐变淡入淡出的动画效果。以下是一个简单的示例: XAML代码: ```xml <Window x:Class="WpfApp1.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"> <Grid> <Rectangle x:Name="myRect" Width="100" Height="100" Fill="Red"/> </Grid> </Window> ``` C#代码: ```csharp using System.Windows; using System.Windows.Media.Animation; namespace WpfApp1 { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); // 创建一个双向动画,将颜色从红色渐变到蓝色,然后再从蓝色渐变回红色 ColorAnimation colorAnimation = new ColorAnimation(); colorAnimation.From = Colors.Red; colorAnimation.To = Colors.Blue; colorAnimation.Duration = new Duration(TimeSpan.FromSeconds(1)); colorAnimation.AutoReverse = true; colorAnimation.RepeatBehavior = RepeatBehavior.Forever; // 创建一个双向动画,将矩形的不透明度从0渐变到1,然后再从1渐变回0 DoubleAnimation opacityAnimation = new DoubleAnimation(); opacityAnimation.From = 0.0; opacityAnimation.To = 1.0; opacityAnimation.Duration = new Duration(TimeSpan.FromSeconds(1)); opacityAnimation.AutoReverse = true; opacityAnimation.RepeatBehavior = RepeatBehavior.Forever; // 将动画应用到矩形的背景色和不透明度属性上 myRect.BeginAnimation(Rectangle.FillProperty, colorAnimation); myRect.BeginAnimation(Rectangle.OpacityProperty, opacityAnimation); } } } ``` 在这个示例中,我们使用ColorAnimation和DoubleAnimation类创建了两个双向动画,分别用于矩形的背景色和不透明度属性。然后,我们将这两个动画应用到矩形的属性上,以实现渐变淡入淡出的动画效果

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值