Win10 UWP 默认控件样式和模板
很多时候发现设计给出的文档,系统默认的控件并不能直接使用。对于复杂的控件,可以新写一个自定义控件,但是对于一些很简单的控件,就想在系统默认的控件基础上通过调整样式来实现。
那么我们就需要知道系统默认控件的布局和样式是如何定义的,幸好微软已经给出了 UWP 控件的默认样式和模板。
https://msdn.microsoft.com/zh-cn/library/windows/apps/mt299122.aspx
大家一定要好好保存喔,方便查询使用。
很多时候发现设计给出的文档,系统默认的控件并不能直接使用。对于复杂的控件,可以新写一个自定义控件,但是对于一些很简单的控件,就想在系统默认的控件基础上通过调整样式来实现。
那么我们就需要知道系统默认控件的布局和样式是如何定义的,幸好微软已经给出了 UWP 控件的默认样式和模板。
https://msdn.microsoft.com/zh-cn/library/windows/apps/mt299122.aspx
大家一定要好好保存喔,方便查询使用。
衣服自己洗的办公机已经有一段时间不能使用UWP程序上网了,包括微软自带的应用商店,然而win32桌面程序却没有这个问题,很是恼火。
于是自己写了一个测试程序,发现代码会崩溃在
Windows.Networking.Connectivity.NetworkInformation.GetHostNames();
后来在某一个偶然的时机,发现如果开着 Fiddler的情况下,应用商店就可以正常访问了,太神奇了。这么看起来似乎是系统代理的问题导致,但是其它的UWP程序仍然无法上网。
在网上搜索了一番,各种所谓的重置答案都试过,均没有效果。何况,工作中可是直接和UWP相关,这个出问题了那简直是要了老命了。
趁着元旦放假的工夫,想在家尝试解决,后来还是放弃了。突然灵光一闪,听说windows在每次大的更新后,都会重置系统的一些设置,就寻思着从这块下手。
好在上次下载的14393的系统镜像还在,就以升级的方式重新安装了一遍系统,各位同学这里可要记住,千万要勾选“保留个人文档和程序”选项。升级后,终于恢复正常了。剩下的例如文件关联之类的都是小问题,以后慢慢回填就可以了。
回想起整个事情,可能出现的情况,感觉问题可能是出现在科学上网上面,以前曾经把玩过一段时间的蓝灯程序,后来购买了shadowsocks后,就卸载了蓝灯。估计是卸载没有完全卸载干净导致。
虽然代价有点大,但好歹也是终于修复了这个问题。
由于FireFly是放在单位一直做代码编译的监视工具,衣服自己洗就寻思着要不要顺便做点下载什么。家里的香蕉派一来有小朋友在,另外是因为实际情况并发效果不太好,很容易就死机了。
接上USB扩展坞,接上移动硬盘后,3个分区系统都顺利识别出来,寻思着移动硬盘应该是带不起来,所以USB有额外的提供电源。
一路安装了uget和aira2,顺便也搞了一个webui-aria2网页版,这些以后有机会再提吧。
下载的时候,发现移动硬盘的挂载点是中文的,有点担忧是否有影响。就寻思着怎么修改这个挂载点,首先发现无法像windows系统那样,直接通过右键菜单来修改,最简单的方法就是接回windows系统,然后修改为英文名称。
遗憾的是,在window上修改后,再次连上FireFly,发现还是显示原来的内容。拔掉移动硬盘,检查挂载点,发现在 /media/ubuntu/下果然还有3个文件,删除之。
再次插入U盘,发现还是显示中文的挂载点,在/media/ubuntu/目录下又出现了3个中文名称。奇怪的不要不要的。
后来才偶然间发现,原来挂载点信息保存在 /etc/fstab 文件中,修改里面的挂载点名称,顺利解决了。
今天带了块移动硬盘到单位,接入到Firefly后,发现无法向设备内写入文件,换成U盘也是一样的问题。插入后系统可以很快地识别出来,但就是只读的。可以浏览,写入就不用想了。
因为Firefly是基于arm架构的,不知道是不是和这个有关系,网上搜索的结果也各种各样,但是都没有什么效果。
最后,找到了一个解决问题的方法了。
sudo apt-get install ntfs-config
sudo ntfs-config
这个时候系统会弹一个窗体出来,勾选对应的移动硬盘,并允许写入就可以了。实际上,ntfs-config在Firefly上安装是没有问题的,配置的时候报了一堆的python错误,不过看起来没有什么大问题。
最近发现win10的锁屏界面居然无法登陆系统了,只能重启解决。如果在锁定屏幕前有未保存的内容,就很悲催了。
衣服自己洗开始还以为是偶然的现象,后来在多台电脑上都有发现。而且是锁定的时间越长,其概率就越大,例如第二天早上上班。
由于微软自win10以后就采用小步慢走的方式,导致网上的帖子里有很多过时的讨论,有价值的不多。后来经过一番搜索,找到的解决方法如下:
进入设置->个性化->锁屏界面,关闭Windows聚焦,并且关闭“在锁屏界面上从Windows和Cortana获取花絮、提示等”,然后重启系统。
经过这样的设置后,果然就好了。
好景不长,问题又出现了,只是说概率比以前要小很多。看来关闭聚焦有效果但没有根治。
衣服自己洗不太死心呀,晚上锁定电脑后,第二天必须要强制关机重启,对于强迫症来说,太过于惨烈了。
再经过翻墙后的搜索,终于找到了彻底解决问题的思路,问题的原因是由于微软输入法的原因导致的。大家可以在任务管理器里找到ChsIME.exe这个进程。
衣服自己洗用的是QQ拼音,完全不在乎微软自带的输入法。迅速杀掉这个进程。为了稳妥起见,重命名了这个文件作为备份。
世界终于清净了,运行了一段时间后,再也没有发现过这样的情况。虽然后面又陆续有过几次windows 更新,不知道微软是否有修复这个问题。
在最近的某个界面上,我们需要添加一个滑动条Slider,并且根据业务需求获取用户点击和松开鼠标的时机。衣服自己洗发现对于通用控件的PointerPressed 和 PointerReleased 事件是无法触发的。
来自微软方面的解释是这2个事件被Slider的子控件给处理了,导致事实上这2个事件无法被我们拦截处理。
解决方法也很简单:
1,为Slider控件设置ManipulationMode属性,其枚举值为Windows.UI.Xaml.Input.ManipulationModes.TranslateRailsX。
2,为控件添加 ManipulationStarted 和ManipulationCompleted 事件,以代替 PointerPressed 和 PointerReleased 事件。
现在大家就可以解决自己的需求了。
随着硬件的发展,屏幕分辨率做的越来越大,相同的环境下,分辨率越高,视觉上看起来文字就越小。
操作系统本身提供了DPI的缩放,但是这个操作并不影响网页里的内容。值得幸庆的是,现代浏览器提供了网页内容的缩放功能。
那么,如果我们想获取浏览器的缩放比例以加载不同的样式和脚本,要怎么做呢?
现代浏览器提供了标准接口,window.devicePixelRatio 表示为设备上物理像素和设备独立像素的比例。
对于IE而言,IE 提供了 window.screen.deviceXDPI 和 window.screen.logicalXDPI 两个属性,deviceXDPI 就是对应的设备上的物理像素,而 logicalXDPI 就是对应了设备独立像素的比例。
下面就是代码了:
function getPageZoom() {
var ratio = 0,
screen = window.screen,
ua = navigator.userAgent.toLowerCase();if (window.devicePixelRatio !== undefined) {
//现代浏览器直接支持
ratio = window.devicePixelRatio;
}
else if (~ua.indexOf(‘msie’)) {
//兼容低版本的IE浏览器
if (screen.deviceXDPI && screen.logicalXDPI) {
ratio = screen.deviceXDPI / screen.logicalXDPI;
}
}if (ratio) {
ratio = Math.round(ratio * 100);
}return ratio;
};
现在就可以根据自己的业务来做不同的处理了。
在很久以前,衣服自己洗使用 BONOBO Git Server 作为Git的源代码管理系统,对于windows而言,很是方便,也不需要手动管理私匙之类的。
上次访问的时候,居然就报错了,日志系统,系统事件里都没有找到有用的信息。后来回忆起,问题应该出现在系统升级到windows server 2012之后。后来无意间在官网上发现了一段文字,原来是目录权限设置问题。
给目录添加IIS_IUSRS角色,并给与权限,问题就解决了。
说起来很简单,但这个解决方法还真不一定想得到。因为从windows server 2003开始,基本上只需要设置network server权限就可以了。衣服自己洗以前是使用windows server 2008也没有什么问题,但是在2012上就需要如此这般设置,官网上也给出了这样的说明。
今天在删除系统日志的时候,我以为是在日志目录,没有想到是在 /etc/nginx目录,一下子给清空了,那叫一个悲催啊。反复卸载安装了好几次都没有效果,急的满头大汗。
经过一个下午加上晚上的摸索,分享下解决方法,也非常的简单。
sudo apt-get remove nginx
sudo apt-get autoremove
sudo apt-get autoclean
sudo rm -rf /etc/nginx
sudo rm -rf /etc/init.d/nginx
sudo rm -rf /var/lib/nginx
sudo rm -rf /var/log/nginx
sudo rm -rf /etc/logrotate.d/nginx
sudo apt-get purge nginx
dpkg –get-selections|grep nginx
然后我这里就列出了nginx-common 和 nginx-core
接着继续运行
sudo apt-get –purge remove nginx-common
sudo apt-get autoremove
sudo apt-get install nginx
之后终于出现了nginx的欢迎页了,剩下的就是各种配置,就不细说了。
我的手机安装了腾讯的自选股,有时候就发现消息通知栏的消息无法删除,特别是只剩下一条自选股的推送时。为此抓狂了好久。
但是你说取消消息推送又不是很合适。
今天试了一个方法,果然是管用的。设置->通知->开启按应用分组。
问题就解决了,希望接下来的iOS10系统可以解决这个问题。