Сохранить изображение в изолированном хранилище вместо папки проекта. Затем извлечь изображение из изолированного хранилища, когда вы хотите, как это,
var lockimageuri = new Uri("ms-appdata:///Local/" + "lockimage0.jpg", UriKind.Absolute);
LockScreen.SetImageUri(lockimageuri);
Здесь locimage0.jpg изображение, которое представляет в изолированном хранилище.
Вот код для сохранения изображения в изолированном хранилище.
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
string filePath = "lockimage0.jpg";
if (store.FileExists(filePath))
{
store.DeleteFile(filePath);
}
IsolatedStorageFileStream fileStream = store.CreateFile(filePath);
wbm.SaveJpeg(fileStream, wbm.PixelWidth, wbm.PixelHeight, 0, 100);
fileStream.Close();
}
Также вы можете использовать этот метод для чтения локального изображения из папки проекта.
private WriteableBitmap ReadLocalImage(string Uri)
{
StreamResourceInfo sri = null;
Uri uri = new Uri(Uri, UriKind.Relative);
sri = Application.GetResourceStream(uri);
BitmapImage bitmap = new BitmapImage();
bitmap.CreateOptions = BitmapCreateOptions.None;
bitmap.SetSource(sri.Stream);
WriteableBitmap wb = new WriteableBitmap(bitmap);
return wb;
}
Вот как я применил пользовательский экран блокировки в своем приложении.
Кроме того, убедитесь, что вы обновили файл манифеста
<Extensions>
<Extension ExtensionName="LockScreen_Background" ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" TaskID="_default" />
</Extensions>
Я также попытался с изображением в локальной папке проекта, что также работает хорошо для меня. Вот код, который я пробовал.
private async void SetLockScreen()
{
//Check to see if the app is currently the lock screen provider
if (!LockScreenManager.IsProvidedByCurrentApplication)
{
//Request to be lock screen provider
await LockScreenManager.RequestAccessAsync();
}
//Check to see if the app is currently the lock screen provider
if (LockScreenManager.IsProvidedByCurrentApplication)
{
//Set the image to the lock screen image
Uri imageUri = new Uri("ms-appx:///Images/lockscreen.png", UriKind.RelativeOrAbsolute);
LockScreen.SetImageUri(imageUri);
}
}
Похоже, что 'ms-appx: /// Assets/1.jpg' не существует. Вы уверены, что можете получить доступ к этому файлу? – Otiel
Убедитесь, что путь правильный. – iamCR
Вы установили свойство BuildAction изображения в Content? – anderZubi