UAP开发错误之The given System.Uri cannot be converted into a Windows.Foundation.Uri(windows phone背景更换)
今天博主在开发一款windows phone应用时,希望实现app背景的更换,思路很简单。使用ApplicationDataContainer容器存储我的图片路径,每次载入应用时读取这个路径以决定我用什么背景,然后在更换背景时改变这个容器的值就好了。相关代码如下:
ApplicationDataContainer localsetting = ApplicationData.Current.LocalSettings; localsetting.Values["Background"] = "ms-appx:///Assets/Images/background2.jpg"; Button btn = sender as Button;
if(string.Equals(btn.Tag,""))
{
localsetting.Values["Background"] = "ms-appx:///Assets/Images/background1.jpg";
}
else if(string.Equals(btn.Tag,""))
{
localsetting.Values["Background"] = "ms-appx:///Assets/Images/background2.jpg";
}
else
{
localsetting.Values["Background"] = "ms-appx:///Assets/Images/background3.jpg";
}
在载入应用时,把Grid的背景用容器路径所对应的图片刷一下,其中的ContentPanel是一个Grid:
if (!localsetting.Values["Background"].Equals(null))
{
string strImageUri = localsetting.Values["Background"].ToString();
if (!string.IsNullOrEmpty(strImageUri))
{
ImageBrush imageBrush = new ImageBrush();
imageBrush.ImageSource = new BitmapImage(new Uri(strImageUri, UriKind.RelativeOrAbsolute));
ContentPanel.Background = imageBrush;
}
}
值得注意的是:我的图片放在工程中下面的Assets文件夹下面的Image文件夹中,一开始我容器中存放的值是类似这样的:
localsetting.Values["Background"] = "Assets/Images/background2.jpg";
然后就会报错:The given System.Uri cannot be converted into a Windows.Foundation.Uri,现在的Uri定义好像已经修改,具体参考:https://msdn.microsoft.com/zh-cn/library/windows/apps/windows.foundation.uri(v=vs.85).aspx
我的解决方法就是在路径前面加个ms-appx:///就行了,注意,这是个绝对路径,UriKind应该设置为UriKind.RelativeOrAbsolute或者UriKind.Absolute
UAP开发错误之The given System.Uri cannot be converted into a Windows.Foundation.Uri(windows phone背景更换)的更多相关文章
- 开发错误处理记录(无法激活服务,因为它不支持 ASP.NET 兼容性)
错误提示:无法激活服务,因为它不支持 ASP.NET 兼容性.已为此应用程序启用了 ASP.NET 兼容性.请在 web.config 中关闭 ASP.NET 兼容性模式或将 AspNetCompat ...
- 开发错误日记 12: Unsupported major.minor version 52.0
开发错误日记 12: Unsupported major.minor version 52.0 在编译时出现如下错误: java.lang.UnsupportedClassVersionError: ...
- 开发错误11:Configuration with name ‘default’ not found
开发错误11:Configuration with name 'default' not found 今天在导入一个sdkdemoapp3.0项目时,发现project build.gradle 与m ...
- 开发错误记录8:Unable to instantiate application com
开发错误记录8:Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication 这是因为在And ...
- 错误描述:请求“System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败
错误描述:请求“System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, Pu ...
- 编译器错误消息: CS0012: 类型“System.Object”在未被引用的程序集中定义。必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的引用。
编译器错误消息: CS0012: 类型“System.Object”在未被引用的程序集中定义.必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neu ...
- 10个最容易犯的Python开发错误
10个最容易犯的Python开发错误 转载 2017年09月25日 16:54:36 标签: python / 大数据 / 大讲台 Python是一门简单易学的编程语言,语法简洁而清晰,并且拥有丰 ...
- C#微信公众号开发——错误一
一.网站发布后,运行报如下错误
- windows phone URI映射
UriMapping用于在一个较短的URI和你项目中的xaml页的完整路径定义一个映射(别名).通过使用别名URI,开发者可以在不改变导航代码的情况下来改变一个项目的内部结构.该机制还提供了一个简单的 ...
随机推荐
- Procedural graphics architectures and techniques
BACKGROUND The evolution of graphics rendering technology has led to the development of procedural t ...
- Thermal zone monitoring in an electronic device
FIELD One embodiment of the invention relates to a closed loop thermal control process in a portable ...
- Opencv 使用Stitcher类图像拼接生成全景图像
Opencv中自带的Stitcher类可以实现全景图像,效果不错.下边的例子是Opencv Samples中的stitching.cpp的简化,源文件可以在这个路径里找到: \opencv\sourc ...
- eclipse配置本地服务
1.下载安装eclipse 2.下载tomcat文件,并解压 3.下载tomcat插件 com.sysdeo.eclipse.tomcat_3.3.0 将com.sysdeo.eclipse.tomc ...
- UIPasteboard粘贴板:UITableView复制粘贴功能(二)
这篇咱写写一写在UITableView上实用剪贴板的两种方法: 一:在自定义cell里面使用 其实,在cell的使用跟在label里面的用法基本一样 1.放方法: - (BOOL)canBecomeF ...
- 关于生命周期里执行setState
React里生命周期的哪些方法里可以执行setState,这对于很多使用React很长时间的开发都是个迷惑的问题. 先看一下完整的生命周期. 再看两篇文章 React componentDidUpda ...
- Android经常使用UI包裹 - EditText
EditText的信息接受用户输入是最重要的Android UI包裹,您可以使用EditText.getText()获取它的文本内容. 实例:EditTextDemo 执行效果: watermark/ ...
- Variability aware wear leveling
Techniques are presented that include determining, for data to be written to a nonvolatile memory, a ...
- c语言学习笔记(10)——结构体
------------------------------------------------------------------ # include <stdio.h> struct ...
- 1.4微服务前奏 netcore学习
1.要让vs2017能够选择.net core 2.1版本,只需要安装.net core2.1的sdk安装包就行了 官方地址:https://www.microsoft.com/net/learn/g ...