Win10 UWP系列:关于错误 0x80073CF9及一个小bug的解决

原文:Win10 UWP系列:关于错误 0x80073CF9及一个小bug的解决

最近一直在开发XX的uwp版本,也是边摸索边做,最近遇到几个比较奇怪的问题,记录于此。

1、项目可用部署到PC,但无法部署到手机,提示以下错误:

错误 : DEP0001 : 意外错误: Install failed. Please contact your software vendor. (Exception from HRESULT: 0x80073CF9

为了方便开发,我将常用的类库引用好、默认的几个页面做好,然后导出成项目模板,新建项目时都从这个模板开始。之前掌中汇率也是用这个模板做的,可以正常部署,但新建的这个项目就都无法部署到手机了,两台电脑都不行,奇怪的是部署到PC又是好好的。

既然找不到其他的原因,只能分析Package.appxmanifest文件了,经比较,另一个项目掌中汇率的ProductId与新项目是一样的,因为是从同一个项目模板建的。手机里已经安装了相同ProductId的项目,所以后来的就无法安装了,但我印象里觉得应该是如果id冲突应该会提示卸载之前的app,而PC平台又完全没提示这个错误,真是奇怪。将手机里的掌中汇率卸载或修改新项目的ProductId这个问题就解决了。

 

2、诡异的ListView的Padding导致无法保存列表位置的问题。

UWP默认的ListView样式,在PC的滚动条比较宽,手机上的很细基本就是一条线。因为ListView默认点击会变色,我不喜欢ListViewItem都有个Padding,就修改了ListViewItem的模板,设置Padding为0。这样就产生了在PC上使用时,滚动条会遮住一部分项内容的问题。于是又将ListView设置了一个Padding,设置为12,0。这样既挡不住内容又不会有背景色了,看起来一切正常。

然后在做一个Master/Detail视图的页面时,诡异的问题出现了。在UWP开发中,为了自适应PC和手机不同宽度的布局,可以采用Master/Detail视图来做,左侧列表,右侧详情。

我在MainPage里放了一个SplitView,用来做汉堡菜单,在SplitView的Content里,放了一个Grid,分为两列,每列放一个Frame,用来显示Master和Detail页面,Master页面里是一个ListView,Detail显示具体内容。目的是这样:

在宽度大于720时,两个Frame同时展示;

宽度小于720时,分为两种情况:

如果Detail页面为空,则只显示Master页面,也就是将第一列宽度设置为*;第二列宽度为0;

如果Detail页面不为空,则只显示Detail页面,将第一列宽度设置为0,第二列宽度为*。

具体实现是用了一个自定义的StateTrigger来进行切换。但诡异的问题是,当点击Master页面的列表,隐藏Master显示Detail后,再返回键返回Master,之前的列表位置变化了,跟之前的项相差三四个位置,不一定,但使用起来很别扭,返回后找不到刚才点的是哪项了。

为了解决这个问题,我怀疑是Master页面里有Pivot,结果去掉也不行,然后新建了一个干净项目,什么样式也没加,只是点击一个按钮设置第一列的宽度为0或*,列表位置就正常了。看来是模板或样式的问题,挨个找吧。经过仔细查找,终于找到原因所在,就是因为给ListView加了一个Padding。把ListView的Padding去掉,就正常了。

说的过程很简单,但花了我几乎半天的时间,但经咨询礼物说开发者郑大神,他也是设置了ListView的Padding,却一切正常。所以可能还是没找到关键问题所在。

去掉了ListView的Padding,滚动条又会遮挡内容了,于是只好把ListViewItem的Padding又加上了……转了好大一个圈又回到了原点……

最近的进度有点慢,博客也没大有时间写了,等手头这个app开发完后会及时总结一下。

 

3、'System.DateTime'/'System.Decimal' is not a valid Windows Runtime parameter type

在开发后台任务时,如果类中使用了DateTime或decimal等类型,会报以上错误。因为后台任务是一个Windows运行时组件,不支持这些.NET类型,可以把用到这些类设置为internal、protected或者private,或者把DateTime改为DateTimeOffset,decimal改为double。

 

时间: 2024-11-02 09:13:45

Win10 UWP系列:关于错误 0x80073CF9及一个小bug的解决的相关文章

Win10 UWP系列:更新UWP时注意的问题——TargetDeviceFamily

原文:Win10 UWP系列:更新UWP时注意的问题--TargetDeviceFamily 前几天把CurrencyExchanger提交到微软参加Master认证,结果没有通过,反馈了一些错误,看来微软检查还是比较仔细的. 错误主要有: Visual feedback helps users recognize whether their interactions with your application are detected, interpreted, and handled as

c++-二叉树搜索的问题,以及一个小bug

问题描述 二叉树搜索的问题,以及一个小bug #include<iostream> #include<string> using namespace std; class node{ public: string name; string keyword; node* left; node* right; node(string a = "0", string b = "0", node* c = 0, node* d = 0) : name

menu-关于popupwindow学习中出现的一个小bug

问题描述 关于popupwindow学习中出现的一个小bug 我设置了一个buttonde点击事件 点击后能弹出popuowindow的框 ,我也设置了menu键,点击menu键 也可以弹出这个popupwindow的框 ,但是奇怪的地方在于,如果我不先点击button,我点menu键,它不会再弹出这个popupwindow的框了 ,意思就是只有先点button弹出那个popupwindow框先,点击menu才会有popupwindow这个框.我一直找不到原因,特地找各位大神帮帮忙!然后还有一个

Java内部类this$0字段产生的一个小bug

首先查看下面一段代码,我指出了问题代码的所在,读者先自己思考一下这段代码会有什么问题. 这是用clone方法完整拷贝一个二项堆(BinomialHeap)结构的代码.二项堆中包含一个内部类BinomialHeapEntry,这个内部类的对象即二项堆中的每一个结点,除了包含结点对应的关键字外,还记录父节点parent,下一个兄弟结点sibling和第一个孩子结点child三个指针.二项堆的根表通过每棵二项树根节点的sibling指针链接. cloneBinomialTree(BinomialHea

Windows 7 7057一个小问题的解决

win7的更新速度可以说越来越快了,什么时候刚下的7048,过了几天大家都已经开始用7057了.不过 ,尝鲜也要付出代价,那就是有一些新的问题会碰到,这就需要我们这些小白鼠们自己动脑动手解决问题 .下面就是7057版本会出现的一个问题--每次开机或重启后系统会自动打开一个记事本,内 容如下: [.ShellClassInfo] LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21787 虽然对于一些高手来说不算难事,但肯定也会有

HttpModule和HttpHandler的一个小问题的解决

设计一个HttpHandler的时候发生了怎么都无法访问或者设置Session的问题://代码是在网吧手动敲打,错别字请别在意,意思明确即可public class HttpHandlerTest : System.Web.IHttpHandler{ public void ProcessRequest(System.Web.HttpContext context) { Response.Write(context.Session.SessionID.ToString()); }}调试发现连Se

一个小改进,解决Redis数据在线加载大痛点

作者介绍 顾伟涛,曾任职于百度.奇虎360,现为杭州铭师堂教育资深DBA,擅长数据库监控.备份.高可用架构设计和自动化运维,对Redis和MongoDB方面有深入研究,关注分布式存储.大数据存储.消息队列.搜索引擎等后端技术.   前言   在使用Redis加载数据过程中存在一个问题,就是必须要重启Redis服务,如果是Redis主从复制架构,这样加载数据,是一件很麻烦的事情,笔者根据Redis启动时加载数据的思想,对Redis进行了改进,实现了在线加载数据,在这里和大家一起探讨下.   设计与

Flash内置类Sound的一个小问题及解决方法

解决|问题 问题:两个声音不能被独立控制var _tmp; var s1_sound = new Sound(); var s2_sound = new Sound(); s1_sound.attachSound("s1"); s2_sound.attachSound("s2"); s1_sound.start(0,1000); _btn.onPress = function(){ _tmp = !_tmp; if(_tmp){ s2_sound.start();

Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App

原文:Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App 安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneGap.ionic.AngularJS这些框架或库的关系,我个人理解是这样,PhoneGap是一个商业项目,用来实现HTML5式的跨平台开发,后来Adobe公司将其中的核心代码开源,就是Co