.NET Compact Framework 移动开发步步来(4)

来源:互联网 发布:windows的平板电脑 编辑:程序博客网 时间:2024/04/26 19:47

     嗯, 又让大家等了足足一个星期. 先说声对不起了, 再也要诉诉苦. 没有办法呀, 与其它培训类的老师不同, 我这段时间都是比较忙的, 因为学生要期末考, 我们还要为下学期的相关事宜进行预先打算.

    我们今天来说说第四个部分的内容,这个部分的内容有实践哦,喜欢的朋友们你们要连上模拟器或是连上手机,再打开Visual Studio 2008准备开动吧。第四个要说的内容是一个对于我们现在Windows Phone应用中比较有用的一块,基本上与很多人的手机生活都是相关的。

    那我们知道,Windows Phone手机多是触摸的,所以我们在输入的时候,特别是输入汉字的时候,总是会弹出来一个输入法的框,如果我们使用的拼音呀,笔划呀这些非手写的输入法,那个打开的界面就会占用大部分窗口。所以现在很多手机开始往W方面发展,什么WVGA,WQVGA等等,代表机器有三星的I900,HTC Touch HD。这样的话,把屏幕做成宽屏的话,可以有效的防止这个界面对程序本身界面的遮挡。那这个界面我们就把其称做是SIP吧。

    其实我们这里所说的SIP的处理方式与我们PC上面的电脑上是一样的,仅仅需要处理KeyDown,KeyUp,KeyPress就足够了。这三个分别对应的,键按下的事件,键抬起的事件,键点击的事件。怎么使用?与PC开发一样了,我这里就不多说了哈。

    在这里我们需要来聊聊这样一个功能,因为我们是手机上的应用开发,所以有时候我们所编写的程序是需要在窗体中捕捉用户的按键而不是在单独的控件中捕捉。那么这个时候我们要怎么做呢?我们只需要找到窗体属性中的KeyPreview,并把其设置为True,然后再对上面提到的几个事件进行相应的处理就好了。

    刚才我们说到,SIP在显示的时候会遮挡我们的程序界面,所以我们要编写程序来让我们所开发的软件能够自动适应因为弹出SIP而导致我们可以操作区域变小的问题。How to?其实我们的.NET Compact Framework已经帮我们考虑到了。它提供了一个很不错的组件,名字叫InputPanel。好,现在大家在已经打开的VS平台中新建一个Windows Mobile的项目,并且从“工具箱”中找到那个"InputPanel"组件,把其拖放到窗体编辑中。OK,完了,运行吧。

    哈哈,逗大家的,怎么可能就完了呢,其实我们离结束已经不远了。接下来我们在窗体中添加一个Panel控件并把其的Dock属性设置为Fill状态,然后添加一个文本框控件,假设ID是“textBox1".  那么我们切换到文本框控件的事件列表中来,然后按着我们里面事件,添加这两个事件。

关于事件的命名大家就自定吧, 不一定非要跟我一样的。

我们在GotFocus中添加如下代码:

Code:
  1. inputPanel1.Enabled = false;  

就一句话.然后在LostFocus中添加另一个代码:

Code:
  1. inputPanel1.Enabled = true;  

好了,然后在InputPanel1控件的事件中,添加EnabledChanged事件.在事件中添加下面的代码:

Code:
  1. if(inputPanel1.Enabled)  
  2. {  
  3.     panel1.Height -= inputpanel1.Bounds.Height;  
  4. }  
  5. else  
  6. {  
  7.     panel1.Height += inputpanel1.Bounds.Height;  
  8. }  

好了,然后大家自己试试吧。

 

嗯,开始说明了,首先,我们需要在窗体中添加一个Fill状态的容器。为什么?因为Windows Phone的窗体都是最大化的窗口,所以我们要去修改窗体的高度,宽度是不太理智的(当然,后期我会教大家如何弄一个不是最大化的窗体出来,嘿)。因此,我们就去添加一个Panel控件来了。别忘记了,还要把Panel控件的AutoScroll控件设置为True,当我们调整大小的时候会让界面有一部分无法显示,如果能够出现滚动条的话,那就好多了。

好了,今天就到这里面,另外也把下一次的内容给说出来吧,关于众多控件的一个概述。

原创粉丝点击