我发现了一个有趣的程序,允许您在桌面和窗口上叠加雪花.作为编程挑战,我有兴趣试图弄清楚如何自己做这件事.更不用说这个程序有点内存耗费(如果它没有内存泄漏).以下是我的开始.我试图通过一个图像得到基础,然后将扩展.
我真正想要帮助的是让图像更加平滑自然地移动.
编辑:
我在答案部分下面发布了一个解决方案,但它比我想要的CPU密集度更高,有什么想法吗?
WPF XAML代码:
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
AllowsTransparency="True"
WindowStyle="None"
Title="MainWindow" Height="350" Width="525" Background="Transparent" Topmost="True" WindowState="Maximized" ResizeMode="NoResize">
<Grid Name="grid1">
<Image Height="26" HorizontalAlignment="Left" Margin="{Binding flakeMargin}" Name="Image1" Stretch="Fill" VerticalAlignment="Top" Width="28" Source="/snowTest;component/Images/blue-pin-md.png" />
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
VB代码:
Imports System.ComponentModel
Class MainWindow
Dim bw As BackgroundWorker = New BackgroundWorker
Dim flake0 As New flake
Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
grid1.DataContext = flake0
AddHandler bw.DoWork, AddressOf backgroundMover
bw.RunWorkerAsync()
End Sub
Private Sub backgroundMover(ByVal …Run Code Online (Sandbox Code Playgroud)