自定义锁屏壁纸 ---For WP8
第一步:添加一段固定代码,到WMAppManifest.xml。
1 <Extensions> 2 <Extension ExtensionName="LockScreen_Background" ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" TaskID="_default" /> 3 </Extensions>
此节点为<Tokens>的兄弟节点,置于其下。
第二步:启动背景图片设置启动器。
1 var op = await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings-lock:"));
如果第一步正确,选择自己的应用后,界面应如下:
第三步:选择图片(只能是本地图片),设置到锁屏界面。
1 /// <summary> 2 /// 设置锁屏背景 3 /// </summary> 4 /// <param name="filePathOfTheImage">本地图片路径</param> 5 /// <param name="isAppResource"></param> 6 private async void LockHelper(string filePathOfTheImage, bool isAppResource) 7 { 8 try 9 { 10 bool isProvider = LockScreenManager.IsProvidedByCurrentApplication; 11 if (!isProvider) 12 { 13 //设置此应用为锁屏提供者 14 LockScreenRequestResult op = await LockScreenManager.RequestAccessAsync(); 15 //返回结果为:Granted,则设置成功; Denied, 则设置失败 16 isProvider = op == LockScreenRequestResult.Granted; 17 } 18 if (isProvider) 19 { 20 // ms-appx:/// :代表应用安装文件夹下的根目录 21 // ms-appdata:///Local/ :代表的是应用独立存储区下的根目录 22 // 两者区别在于,前者图片在应用上传时就确定,后者可先从网络获取,再保持到独立存储器来设置背景 23 string shema = isAppResource ? "ms-appx:///" : "ms-appdata:///Local/"; 24 var uri = new Uri(shema+ filePathOfTheImage); 25 26 //设置锁屏背景源 27 LockScreen.SetImageUri(uri); 28 } 29 else 30 { 31 Debug.WriteLine("设置成功!"); 32 } 33 } 34 catch (Exception ex) 35 { 36 37 Debug.WriteLine(ex.ToString()); 38 } 39 }
第四步:更新背景图
1 private void SwitchImage(string newImage) 2 { 3 string fileName; 4 //获取当前图片URL 5 Uri currentImage = LockScreen.GetImageUri(); 6 7 if (currentImage.ToString().Equals(newImage)) 8 { 9 return; 10 } 11 else 12 { 13 fileName = newImage; 14 } 15 16 LockHelper(fileName,false); 17 }
官方指导链接:http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206968(v=vs.105).aspx