水印請跳轉:【動態壁紙精選】#01-小小世界合集,手機電腦必備的絕美壁紙 - 嗶哩嗶哩
壁紙動態效果演示視頻: 【動態壁紙】#01-小小世界合集,手機電腦必備的絕美壁紙.
——關注我,好看的桌面動態壁紙每日更新!
以下所有壁紙均來源于軟件Wallpaper Engine(壁紙引擎), 該軟件需要在Steam里購買(Steam售價19元)。
——在您查找壁紙時,請確保您的搜索分類已全選,否則可能會出現找不到壁紙的情況,壁紙名稱我已放到每張圖片的下方,文章的最后也標注了所有壁紙的名稱與相關作者,搜索時復制粘貼就好。
壁紙名稱:Let it Snow [3840x2160]
壁紙名稱:Heroes of Might and Magic 3 - Waterwheel
壁紙名稱:Sol 35946 of 90 [3840 x 2160]
壁紙名稱:Late afternoon drizzle [3840 x 2160]
壁紙名稱:Snowy winter night
壁紙名稱@作者如下
1:Let it Snow [3840x2160] @witolszewski
2: Heroes of Might and Magic 3 - Waterwheel @witolszewski
3: Sol 35946 of 90 [3840 x 2160] @witolszewski
4:Late afternoon drizzle [3840 x 2160] @witolszewski
5:Snowy winter night @witolszewski
文首發于微信公眾號“向日葵游戲”(xrkgame)
獲取更多資訊及免費領取游戲請關注我們吧。
向日葵游戲評分【6分】
這款動態壁紙軟件最大的特色就是鼠標特效和桌面粒子效果非常炫酷,但付出的代價便是CPU和內存的占用率比同類軟件要高。因為剛推出不久,創意工坊的資源數量也遠不如同類軟件。
Windows 增加開關桌面動態壁紙
Nimble
作者:WPFDevelopersOrg - 驚鏵
原文鏈接[1]:https://github.com/WPFDevelopersOrg/Nimble
原文鏈接[2]:https://gitee.com/WPFDevelopersOrg/Nimble
.NET40
;Visual Studio 2019
;接著上一篇
Hook
鍵盤按下時效性過期問題,兩種解決方案1)基于原有功能ConfigHelper
增加代碼如下:
public static bool OpenWallpaper { get; set; }
bool openWallpaper;
if (!bool.TryParse(string.IsOrWhiteSpace(ConfigurationManager.AppSettings["OpenWallpaper"]) ? "false" : ConfigurationManager.AppSettings["OpenWallpaper"], out openWallpaper))
OpenWallpaper=false;
else
OpenWallpaper=Convert.ToBoolean(string.IsOrWhiteSpace(ConfigurationManager.AppSettings["OpenWallpaper"]) ? "false" : ConfigurationManager.AppSettings["OpenWallpaper"]);
public static void SaveOpenWallpaper(bool openWallpaper)
{
OpenWallpaper=openWallpaper;
SaveConfig("OpenWallpaper", openWallpaper.ToString());
}
2)基于原有功能WallpaperItem
增加代碼如下:
//public string ItemName { get; set; }
private string _itemName;
public string ItemName
{
get=> _itemName;
set
{
_itemName=value;
NotifyPropertyChange("ItemName");
}
}
3)基于原有功能app.config
增加配置代碼如下:
<add key="OpenWallpaper" value="true"/>
4)基于原有功能MainVM.cs
增加代碼如下:
names
集合中包含項數大于 0,那么會添加一個新的 WallpaperItem
對象到 names
的末尾。這個對象的 ItemName
屬性值為 "壁紙已開啟" 或 "壁紙已關閉",取決于配置文件中是否開啟了壁紙功能(即 ConfigHelper.OpenWallpaper==true
)。VideoPath
屬性值為 _exitWallpaper
,表示這是退出壁紙的選項,因為當用戶選擇該選項時,程序會停止播放視頻并恢復桌面原本的背景。IsSelected
屬性值也與配置文件中的壁紙開啟狀態相同,以便正確地顯示當前選中的壁紙。 void WallpaersFilePlay()
{
WallpaperArray=;
#region Wallpaper
var wallpaersPath=Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Video");
if (Directory.Exists(wallpaersPath))
{
var names=new List<WallpaperItem>();
var files=Directory.GetFiles(wallpaersPath);
foreach (var filePath in files)
{
var fileName=Path.GetFileNameWithoutExtension(filePath);
names.Add(new WallpaperItem { ItemName=fileName, VideoPath=filePath, IsSelected=ConfigHelper.WallpaperPath==filePath ? true : false });
}
if (names.Count > 0)
names.Add(new WallpaperItem { ItemName=ConfigHelper.OpenWallpaper==true ? "壁紙已開啟" : "壁紙已關閉", VideoPath=_exitWallpaper, IsSelected=ConfigHelper.OpenWallpaper });
names.Add(new WallpaperItem { ItemName="更多壁紙請加QQ群:929469013" });
WallpaperArray=names;
if (WallpaperArray.Count > 0)
ShowWallpaper(ConfigHelper.WallpaperPath);
}
#endregion
}
方法接受一個 wallpaperPath
參數,用于顯示指定路徑的壁紙。如果輸入的參數為空或者該路徑不存在,方法將會直接返回。
它停止當前正在播放的視頻(如果存在),并將壁紙數組中所有非當前壁紙和退出壁紙的選中狀態設置為 false。接下來,根據 _exitWallpaper
找到需要退出的壁紙,并將其狀態設置為已開啟并選中狀態為 true。
該方法啟動一個新的視頻進程,用于播放輸入的壁紙路徑。如果成功創建了一個窗口句柄,則將其移動到桌面的底層窗口,并且將該壁紙路徑保存在程序配置文件中。
void ShowWallpaper(string wallpaperPath)
{
if(string.IsOrWhiteSpace(wallpaperPath))
{
if(WallpaperArray.Count >=3 && ConfigHelper.OpenWallpaper)
{
WallpaperArray.First().IsSelected=true;
wallpaperPath=WallpaperArray[0].VideoPath;
}
}
if (!File.Exists(wallpaperPath) || !ConfigHelper.OpenWallpaper) return;
StopFFplayProcess();
WallpaperArray.Where(x=> x.VideoPath !=wallpaperPath && x.VideoPath !=_exitWallpaper).ToList().ForEach(x=>
{
x.IsSelected=false;
});
if(ConfigHelper.OpenWallpaper)
{
var wallpaper=WallpaperArray.FirstOrDefault(x=> x.VideoPath==_exitWallpaper);
if (wallpaper !=)
{
wallpaper.ItemName="壁紙已開啟";
wallpaper.IsSelected=true;
}
}
StartFFplayProcess(wallpaperPath);
if (ffplayWindowHandle !=IntPtr.Zero)
{
SendMsgToProgman();
Win32Api.SetParent(ffplayWindowHandle, desktopHandle);
if (ConfigHelper.WallpaperPath !=wallpaperPath)
ConfigHelper.SaveWallpaperPath(wallpaperPath);
}
}
如果當前壁紙的視頻路徑與 _exitWallpaper
相等,則執行以下判斷:
如果當前壁紙沒有被選中(IsSelected
屬性為 false
),則執行 StopFFplayProcess()
方法來停止正在播放的視頻,然后將壁紙的 ItemName
屬性設置為 "壁紙已關閉",并將 IsSelected
屬性設置為 false
。
否則,如果當前壁紙已經被選中(IsSelected
屬性為 true
),則執行 WallpaersFilePlay()
方法來播放視頻,然后將壁紙的 ItemName
屬性設置為 "壁紙已開啟",并將 IsSelected
屬性設置為 true
。
public ICommand WallpaperSelectedCommand=> new RelayCommand(obj=>
{
if (obj is WallpaperItem wallpaper)
{
if (wallpaper.VideoPath==_exitWallpaper)
{
if (!wallpaper.IsSelected)
{
StopFFplayProcess();
wallpaper.ItemName="壁紙已關閉";
wallpaper.IsSelected=false;
}
else
{
WallpaersFilePlay();
wallpaper.ItemName="壁紙已開啟";
wallpaper.IsSelected=true;
}
}
else
{
if (string.IsOrWhiteSpace(wallpaper.VideoPath)) return;
if (File.Exists(wallpaper.VideoPath))
{
ShowWallpaper(wallpaper.VideoPath);
}
}
}
});
原文鏈接: https://github.com/WPFDevelopersOrg/Nimble
[2]原文鏈接: https://gitee.com/WPFDevelopersOrg/Nimble