C# 是否可以从Windows8.1应用程序更改桌面壁纸?

C# 是否可以从Windows8.1应用程序更改桌面壁纸?,c#,xaml,wallpaper,windows-8.1,C#,Xaml,Wallpaper,Windows 8.1,我已经搜索了很多关于这个主题的内容,但没有找到一个好的解决方案,因此: 有没有办法使用c#/xaml在windows8.1应用程序中更改桌面墙纸? 仅通过提供图像?据我所知,Win 8应用程序是沙盒 您必须订阅沙箱中未包含的所有内容 如使用音频输出、网络摄像头等,Windows应用商店可以向用户显示您的应用程序想要访问的内容 如果Windows 8不提供“桌面控制”作为可订阅界面,则无法在应用程序中执行此操作 (我这里没有Win 8+VisualStudio,所以现在无法测试)您应该考虑在Win

我已经搜索了很多关于这个主题的内容,但没有找到一个好的解决方案,因此:

有没有办法使用c#/xaml在windows8.1应用程序中更改桌面墙纸?
仅通过提供图像?

据我所知,Win 8应用程序是沙盒

您必须订阅沙箱中未包含的所有内容 如使用音频输出、网络摄像头等,Windows应用商店可以向用户显示您的应用程序想要访问的内容

如果Windows 8不提供“桌面控制”作为可订阅界面,则无法在应用程序中执行此操作


(我这里没有Win 8+VisualStudio,所以现在无法测试)

您应该考虑在Windows 8中创建主题包

看起来LaunchFileAsync()会阻止某些文件类型,.theme和.deskthemepack会被阻止。您需要让用户将文件下载到桌面,然后双击该文件


目前无法设置桌面背景,但您可以在Windows应用商店应用程序中设置锁屏背景。

哇,好主意!但它不能通过LaunchFileAsync工作。我不知道为什么,但什么也没发生!?-如果我从桌面执行创建的.theme文件,并且找到了该文件,则该文件可以正常工作。如果我尝试启动一个*.png,它会使用相同的代码。您对此有何想法,或者*.theme根本不受支持?异步操作的结果是什么?存储文件位于哪里?您是否先将其复制到临时目录?出于测试目的,我在我的资产文件夹中找到了两个文件(*.theme和*.png)
var success=wait Windows.System.Launcher.LaunchFileAsync(文件)“success”对于*.png为真(并且启动了*.png),对于*.theme为假。两个文件都在同一个目录中,我仔细检查了拼写,并确保该文件!=无效的(甚至不是针对*.theme)我只是对ProcMon进行了更深入的调试,我想我找到了错误。它告诉我文件访问成功,但QueryRemoteProtocolInformation导致参数无效。这是什么意思?我是否必须更改主题文件的生成,或者只是无法识别?