Windows10UWP开发总结(一)

本文分享了一位拥有四年WP开发经验的开发者,在过去一年中开发两个大型UWP应用的心得体会,包括UI响应式设计、控件增强、切图、触发器使用、平台区分及手势检测等方面的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从去年6月至今,一直在开发两个较大型的uwp应用,一个是阅读类的,另一个是音乐相关。作为wp4年的开发者,带有一种从入门到饿死的感觉,在此对uwp开发进行了一些总结。

对于uwp来说,ui的沉浸式设计算是最大的特点了。其对开发人员相关的也就是特别要注意的,就是代码用了同一套,但是ui在不同宽高度要做不同的展示。

①对于我们代码中能获取到的宽高,其实是有效像素,对于不知道什么是有效像素,请自己查文档吧。我在开发中,对于响应式界面基本只响应宽度的变化,算上手机,大概宽度会在300-500-2000这个区间,其中500,算是一个区分手机还是pc的一个模糊阈值(真正区分需要用devicefamily来区分),如630的宽为320,1520为400+。

②对于控件的设计,对于响应式来说,一般只关注父控件大小,随之而来的是要对各种常用控件进行增强。如在GridView中,它能得到的是它自身的大小,但是在sizechanged的时候,为了满足视觉要求,可能需要动态的变化里面的item宽高或者显示item的个数。

③切图,系统选图的时候,会根据dpi来挑选资源。我们要做的,只需在资源后面添加.scale-xxx.png的后缀就好了。

④触发器,如果一个界面想要咱不同的宽高,不同的设备等做比较明显的变化,那么在xaml里添加触发器再好不过了,不过有时候比较坑,在触发状态的时候可能会出现过渡状态,需要自己克服。

⑤区分平台。最常用的场景,很多时候,变态交互和视觉很喜欢在pc和mobile上显示差异相当大的ui,大到界面都不能服用了,这时候,就只能服用page的cs以及相关业务逻辑。xaml则完全区分。要做这样的区分,只需对xaml的命名做修改即可。如本来页面A包含A.xaml和A.xaml.cs两个文件,现在要在做一个手机上的大差异适配,则添加一个A.DeviceFamily-Mobile.xaml文件,这样,系统自己能区分加载哪个xaml。当然,这个功能由触发器也能完成,完全取决于你页面的差异大不大了。

⑥手势,比较坑爹,winrt以后,我们只能拿到冒泡方式的手势,隧道方式的已经拿不到了,致使很多操作效果都很难实现。说几个比较有用的手势检测。

    1)scrollviewer的directmanipulatstarted、directmanipulatcompleted,这两个事件可以监控触摸scrollviewer开始和结束两个事件,下拉刷新非常需要它,这两个事件可以穿透scrollviewer的嵌套。

2)经常遇到多tab页场景,会将listview嵌套到flipview里面,如果使用默认属性,会发现,listview在手势45度角滑动的时候非常恶心,左右会晃,我也是参考了google,得出的解决方法,就是讲listview内的scrollviewer的isverticalrail设为true即可

3)compositon,对于拖动事件。一般场合可能没多大问题,使用manipulationdelta的数据就好,但是如果想对scrollviewer检测拖动的手势,那就真是抓狂了。compostion这个东西是win10在10586这个版本上才加入的,可以将ui的操作动效引出来,或者和其他空间的效果做绑定。这个东西比直接使用了dx引擎,能完成相当多的功能,由于文档少,所以我在这只用它实现了下拉刷新和一些拖动的效果。

      以上只是一些开发随感,如果有什么想要探讨的,请留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值