Docking and Anchoring Controls on Windows Mobile

    在正文之前,首先来讲讲Windows Mobile设备UI设计方面的感受。不同环境下,开发Windows Mobile设备应用程序时,界面设计的难易程度也不同。最初在EVC4.0下做Pocket PC 2003se的MFC应用程序时,Resource下的Dialog界面大小是用户指定的,为了使Dialog界面和真实设备的界面吻合,我们需要手动调整Dialog的大小,最头疼的莫过于屏幕在portrait和 landscape 模式切换时,界面不会自动改变。在Visual Studio 2005下,如果使用C++进行native代码开发的话,其界面和EVC4.0下是差不多的。但是使用C#进行managed代码开发的话,就好多了。因为它给的Form就是和真实设备上的Form一致的,这点可以从Form Designer中直观看出来。
    回归到Docking and Anchoring Controls on Windows Mobile的话题中。“Docking”,顾名思义就是停靠,也就是将某个控件停靠在Form的上、下、左、右或者中间(称为Fill)。“Anchoring”是锚固的意思,其意义就像一艘船如果遇到风暴,就需要在海港里使用锚固定一样。我想,大家在使用Visual Studio的时候,可以自己拖动诸如Solution、Debug和Property等窗口,使其停靠在某一个位置,这个就是Docking and Anchoring的意义吧。
    那么,我们如何在Windows Mobile中来设置控件的Docking and Anchoring呢?方法很简单,我们不用写一行代码就能实现这个功能。在某一个控件的Property窗口中,具有Anchor和Dock这两项,我们可以在这两个地方进行设置。如下图1所示:

                                      图1:控件的Anchor和Dock选项

    那么,使用Anchor/Dock和不使用Anchor/Dock有什么区别呢?通过下面两张图片的比较我们就可以直观的感受到。图2是portrait模式下的屏幕。图3和图4是在landscape模式下的屏幕,其中,图3是没有使用Docking and Anchoring的屏幕,图4是使用了Docking and Anchoring的屏幕。大家可以看到,如果使用了Docking and Anchoring,当屏幕在portrait和landscape模式下切换时,控件会自动进行调整,其作用是不言而喻的。

      图2:Portrait模式下的屏幕截图

     图3:Portrait模式下未使用Docking and Anchoring的屏幕截图

 


    图4:Portrait模式下使用Docking and Anchoring的屏幕截图

    通过以上的比较,我们可以明显感觉到Docking and Anchoring在Windows Mobile UI设计中的作用了吧。无论对开发者还是使用者,Docking and Anchoring都是一个不错的Feature。

posted on 2008-11-12 22:48  施炯  阅读(2308)  评论(1编辑  收藏  举报