zoukankan      html  css  js  c++  java
  • WPF 实现雪花效果

    雪花控件类:
    class MM:Control
        {
            DispatcherTimer dispatcherTimer = new DispatcherTimer();
            public MM()
            {
                dispatcherTimer.Interval = TimeSpan.FromMilliseconds(100); ;
                dispatcherTimer.Tick += DispatcherTimer_Tick;
                dispatcherTimer.Start();
            }
    
            private void DispatcherTimer_Tick(object sender, EventArgs e)
            {
                this.InvalidateVisual();
            }
    
            protected override void OnRender(DrawingContext drawingContext)
            {
                var currentcolor = Colors.White;
                Brush brush = new RadialGradientBrush(currentcolor,
                        Color.FromArgb(0, currentcolor.R, currentcolor.G, currentcolor.B));
                Random r = new Random();
    
                for (int i = 0; i < 530; i++)
                {
                    var w = 35 * r.NextDouble();
                    var rect =
                    new RectangleGeometry(
                        new Rect(new Point(r.Next(10,(int)this.Width), r.Next(10, (int)this.Height)),
                            new Size(w, w)));
                    drawingContext.DrawGeometry(brush, null, rect);
                }
                
            }
        }
    前台代码:
    <Window x:Class="WpfAppTest.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfAppTest"
            mc:Ignorable="d"  WindowStyle="None" AllowsTransparency="True" Top="100" Left="100"
            Title="MainWindow" Height="450" Width="800">
        <Window.Background>
            <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                <GradientStop Color="#05438C" Offset="0"/>
                <GradientStop Color="White" Offset="0.9"/>
                <GradientStop Color="White" Offset="1"/>
            </LinearGradientBrush>
        </Window.Background>
        <local:MM x:Name="cc" HorizontalAlignment="Left" Height="417.114"  VerticalAlignment="Top" Width="791.112" RenderTransformOrigin="0.5,0.5" Margin="0,0.007,0,0">
            <local:MM.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform Angle="0.387"/>
                    <TranslateTransform/>
                </TransformGroup>
            </local:MM.RenderTransform>
        </local:MM>
    </Window>

    实现效果:

  • 相关阅读:
    PHP openssl_encrypt函数安全漏洞
    WordPress Organizer插件安全漏洞
    WordPress Poll插件多个SQL注入和安全绕过漏洞
    Redis 重写任意文件漏洞
    WordPress Events Manager插件多个跨站脚本漏洞
    项目建议书编写总结
    www.beihua.edu.cn计划摘录
    《易经》对中华文化的影响
    网站调研资料记录
    积分和排名
  • 原文地址:https://www.cnblogs.com/yeshuimaowei/p/10371273.html
Copyright © 2011-2022 走看看