【发布时间】:2016-05-31 04:23:45
【问题描述】:
我有一个可以设置锁定屏幕图像的应用程序。但是,我不再支持我的 Win 10 应用程序并希望删除该图像。有没有办法在代码中删除锁定屏幕图像或将其设置回系统默认值?
【问题讨论】:
标签: windows-10 win-universal-app windows-10-mobile
我有一个可以设置锁定屏幕图像的应用程序。但是,我不再支持我的 Win 10 应用程序并希望删除该图像。有没有办法在代码中删除锁定屏幕图像或将其设置回系统默认值?
【问题讨论】:
标签: windows-10 win-universal-app windows-10-mobile
UserProfilePersonalizationSettings 提供了方法TrySetLockScreenImageAsync 来设置锁屏图片。但是没有办法删除锁屏图像或将其设置回系统。
在 Windows 10 桌面上,它默认使用Windows spotlight 应用程序来获取锁屏图片。据我所知,我们无法通过 API 使用Windows spotlight 设置锁屏。
在 Windows 移动版 10 中,锁定屏幕与 Windows 10 桌面版不同。它默认使用My picture。
作为一种解决方法,您可以启动锁屏设置,让用户选择My picture 或Windows spotlight。无论是 Windows 10 桌面还是 Windows 移动 10,锁屏设置的 uri 都是一样的。
例如:
bool result = await Launcher.LaunchUriAsync(new Uri("ms-settings:lockscreen"));
【讨论】:
您可以检索当前的锁屏图像并保存。之后,您可以在需要时回滚到以前的状态。
此功能仅适用于 Windows 10 桌面版(据我所知)。您需要为您的项目添加Windows Desktop Extensions for the UWP。 link 提供更多信息。
之后,您可以在使用LockScreen 操作之前保存当前的LockScreen 图像:
if (ApiInformation.IsTypePresent("Windows.System.UserProfile.LockScreen"))
{
var fileName = "originalLockScreenImage";
//check is file exists
var originalLockScreenFile = await ApplicationData.Current.LocalFolder.TryGetItemAsync(fileName);
if (originalLockScreenFile == null)
{
var currentImageStream = Windows.System.UserProfile.LockScreen.GetImageStream();
var tempFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(fileName, CreationCollisionOption.OpenIfExists);
using (var fileStream = await tempFile.OpenAsync(FileAccessMode.ReadWrite))
{
await currentImageStream.AsStream().CopyToAsync(fileStream.AsStream());
}
}
else
{
//rollback if you want
await Windows.System.UserProfile.LockScreen.SetImageFileAsync((IStorageFile)originalLockScreenFile);
}
}
【讨论】:
Windows.System.UserProfile.LockScreen,请添加到您的解决方案Windows Desktop Extensions for the UWP。看我上面的帖子。
我假设您想将您的平台恢复到其原始状态或附近。选择设置图标(齿轮状的东西),然后转到“个性化”。点击后,您会在左侧看到一个垂直选项列表,其中之一是“锁定屏幕”。 “背景选项”下的选项栏有一个小的下拉扩展箭头。如果一切顺利,您将拥有三个选项,其中之一应该是“Windows Spotlight”。如果你想要那个,拿去吧。如果您想要不同的图片,请浏览。希望这是有用的和有帮助的。
【讨论】: