Edi Wang

Windows Development 85


如何在设计器中显示Windows Phone 8的菜单栏(ApplicationBar)

最近正式开始玩WP开发,把一些小技巧和经验写成单独的一篇篇文章,虽然很菜, 通常,我们新建一个Windows Phone应用程序后,菜单栏的代码默认是在MainPage.xaml.cs文件中的。只要取消模板里的这些注释就能在运行时看到菜单栏。 但是这么做有个缺点,就是无法在设计器里直观的看到菜单栏,不便于我们设计和调整UI。其实我们不必使用后台代码来实现菜单栏。它可以直接定义在xaml文件里。打开MainPage.xaml,在LayoutRoot的Grid之外(注意不要定义在Grid里边),加入代码: 这样我们就能在设计器里得到一个菜单栏了。 要做半透明的菜单栏也很方便,只要给shell:ApplicationBar加上Opacity="0.5"属性,0....

WP ApplicationBar

Windows Phone 8 文本框如何限定软键盘类型

在开发Windows Phone应用时,一个非常通用的需求就是限定文本框的输入内容。最直接的办法是限定弹出的软键盘的类型。比如有些文本框只允许输入数字,那就弹出数字键盘,不让用户选择其他键盘。这样做的好处有两个:节省后台验证逻辑、方便用户交互。 要限定键盘类型,做法很简单,就是设置TextBox控件的InputScope属性。比如输入电话号码的文本框可以这样写: 这样弹出的文本框就是数字键盘: 所有的InputScope类型见下表: 翻译自MSDN:http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh393998%28v=vs.105%29.aspx 键盘 备注 InputScope 包括自动修正、建议和表情 Text 默认键盘 AddressCi...

InputScope TextBox

Windows Phone 8 列表控件(LongListSelector)分组

Windows Phone 8的列表控件天生支持分组,就像人脉应用中的类似,可以快速根据拼音首字母定位。在列表视图中点击分组标题后显示所有的组名,点击组名即可定位到这个组。我们自己开发的WP应用也能做到这样的分组功能,但需要一些额外的代码。下面的例子来自我的一个WP应用,有图有真相: 分组视图: 实现LongListSelector分组其实很简单。 1. 首先,你需要一个分组的助手类,这是一个相对标准的类,MSDN上抄来的: public class Group : List { public Group(string name, IEnumerable items) : base(items) { this.Title = name; } public string Title {...

Windows Phone

使用PowerShell操作Windows Event Log

PowerShell是个很牛逼的命令行工具,在Windows 7以后的系统里都默认自带。学会了PowerShell就可以提升逼格,让妹子崇拜。今天就教大家用PowerShell操作Windows的Event Log。 首先,启动PowerShell很简单,只需要在开始菜单里输入Power,就能找到了(Windows 8用户可以直接在开始屏幕里搜索Power)。 启动PowerShell后,你可以看到一个这样的界面。和CMD不同,它是深蓝色背景的,并且路径前多了PS前缀。看起来很厉害的样子: 有用程序写过Windows Event Log的童鞋都知道,我们的首要任务是创建一个Log和一个Source。PowerShell里语法如下: new-eventlog -LogName 日志名称 -Source 源名称 比如,我们创建一个Name为Game,Source为CS的Log...

Windows PowerShell EventLog

How to enable IPC share on Windows 8/8.1/10

Update 2017.2: This will also work with Windows 10 最近为了贯彻微软先进思想,给台式机换了个Windows 8,许多地方爆出了翔,但用惯以后还是很舒服的。在Windows 8里,操作系统的许多设置被微软在黑暗中偷偷的改过了。比如局域网共享文件夹,在以前版本的Windows上,如果知道对方机器的管理员帐户密码,就可以在路径后面加上“盘符$"来直接访问对方的整个硬盘。比如在:\\DiaosPC\D$,系统会弹出一个身份验证对话框,输入DiaosPC上的管理员帐号后,即可访问他D盘的内容。在Windows 2000的年代,黑客们可以利用这点进行“空连接”攻击,给对方下载木马,然后用at命令定时执行,这些黑暗的历史就不告诉大家了。。。。 然而,这个功能在Windows 8上似乎被撸掉了,虽然在管理工具里还能见到所有盘符的管理共享,但局域网中是无...

共享 Windows 8

如何让Surface RT的开始屏幕显示4行磁贴

昨天Surface RT启动后,开始屏幕突然变成了4行磁贴。虽然感觉比较惊讶,蛋说实话,4行还是比3行的可用性高一点。不过重启Surface以后,就还原成3行了,怀疑这是Windows判别显示器大小时候的一个bug。经过一番研究,在Windows 8(Windows RT)上,开始屏幕显示多少行磁贴,是由Windows自动决定的,主要取决于屏幕分辨率以及屏幕大小。在Surface的1366x768、10.1,10.6寸屏上,默认显示3行,并且不提供设置选项。不过,1366x768的分辨率在较大的屏幕上(14.1、15.4寸),是可以显示4行磁贴的。在其他分辨率的设备上,也是如此。但是Windows没有提供手动设置的地方,所以我们只能改注册表强撸。下面的注册表设置,只适合Surface RT,Windows 8(非RT)用户请勿尝试,小心灰飞烟灭。Windows Registry Edito...

Surface RT Windows 8 Tile

开荒成功:如何在Surface RT上给其他计算机共享文件

最近在撸Surface,屌丝只能买RT版的,上面的Windows 8不是全功能的,你们懂的。对我来说,比较不方便的就是似乎不能共享文件。当然,用Surface访问我台式机上的共享一点没问题。所以今天开荒了一下如何在Windows 8 (RT版上)架设共享文件夹。 1. 在服务管理里面,找到Server,并设置为自动启动,然后启动这个服务。 2. 运行mmc.exe(服务器管理员猿应该经常用这个吧) 3. 将“共享文件夹”添加到右边的管理单元里。 4. 现在你就可以添加你要共享的文件夹了。注意权限设置一定要正确,符合自己的需要。 5. 用局域网中的其他电脑访问你的Surface的机器名,应该能看到共享了!...

Surface Windows RT 共享

如何在Outlook2010中移动hotmail的ost文件

今天突然发现Outlook把邮件都存C盘用户目录里了。就像这样:C:\Users\Edi\AppData\Local\Microsoft\Outlook\Edi_Wang_outlook.ost,这文件和你的邮箱一样大,非常占用空间。所以我想把它换个地方放,结果账户设置里,outlook.com(以前的hotmail)的ost文件是个奇葩,数据文件设置里根本没有改ost路径的选项,和网上查到的方法大不一样。 后来看到一个微软猿工回的帖,说hotmail的文件就是这样的,不能移动的。本人菊花一紧,难道是写hotmail connector组件的程序员把这个东西给hard code了? 不过以电脑技巧为生的屌丝们还是有解决办法的: 1. 关掉outlook 2. 把你的巨型ost文件,比如我的(Edi_Wang_outlook.ost)移动到别的位置。比如这里:G:\Outlook...

hotmail Outlook ost

Silverlight程序Debug的方法以及如何在非IE浏览器下调试程序

这篇文章是入门的,高手请直接无视。 一、不能调试的解决办法 在VS里,我们一般调试程序都是直接按F5就行的。但Silverlight的程序有时候加不到断点上来。这时候需要检查几个地方。 1. 当前的Build设置的是Release还是Debug?只有Debug模式才可以调试,这在VS的工具栏上可以直接改。 2. 当前Host Silverlight程序的Web Application是否启用了Silverlight Debug?检查项目属性的这个位置。必须勾选Silverlight才能Debug。 3. 你是否为本机管理员?只有管理员帐号才能正确无误的挂载到Silverlight进程上。 二、在非IE浏览器下调试Silverlight程序。 如果我们的默认浏览器是IE,那么按下F5之后,其实VS会自动挂载到IE的进程上。所以才能debug。因此,我们如果换了一个浏览器,V...

Debug Silverlight Chrome

PSEXEC连接远程机器cmd拒绝访问的原因及解决办法

最近在玩一个很牛逼的小工具叫做psexec,知道对方的管理员帐号和密码就可以远程连接对方主机的cmd,对方无需打开远程桌面等任何服务。n年前曾被黑客们用来做过很多坏事,不过这个工具对于网管和程序员来说倒是可以提供不少方便。今天在公司的域环境下试了试,结果居然爆了: 我输入的用户名及密码是正确的(用户名得包含域,即domain\username),并且这个帐号在目标机器上也是有管理员权限的。可是试了好几次都是Access is denied。 于是我登录目标机器,看了下Windows的日志,结果发现psexec发起的这次登录,居然是要用我本机当前用户的身份执行的。我本机执行cmd的用户名如下: 这个会出现在目标机器的Security日志里: 图中,Specail Logon里使用的是psexec参数里的帐号,而Logoff里显示的,却是我本机登录帐号。这个帐号在目标机器上...

PSEXEC 管理员