Pro WPF in C# - think aloud

刚开始看,正看到第三章Layout,真搞不懂WPF一直强调的设计UI的那些改变真的是好事吗?

首先,有多少开发人员真的关心一个窗口改变大小带来的影响呢?开发人员完全可以将主窗体设为默认最大化,所有功能都用不能调整大小的弹出窗口,或者Dock在一个固定大小的Panel里面。用户调整主窗口大小?吃饱了撑的啊,能干事就行,没事调整大小干嘛。 自己要调整大小,就别怪大小改变导致界面变形不规则什么的(何况Winform调整窗口大小只要不过分也不会有多难看的效果)。Winform做出来的应用程序又不是让用户当游戏一样玩的。

再说不同显示器和分辨率的影响。.NET出现的时候,大概流行的显示器还是15寸的。后来显示器一直在发展,Winform应用程序也在不断地被部署到客户那里。有多少客户会抱怨说,因为显示器换了更好的,导致以前你们给开发的应用程序不好用了,需要更新程序?我孤陋寡闻,没听过。

这是没事找事做的无用功,再说说做的反向功。

我刚开始看WPF,也许这个问题不像我想象的那么麻烦。但就我目前的理解,控件的位置和大小都用固定像素和固定坐标来表示是很直观,很简单,很好理解和维护的方式,为什么要求用户都接受流方式的布局呢?我个人喜好CS多于BS就是因为不想花太多心思在网页的布局上面。div+css真的不是我喜欢干的事情,不知道什么时候需要clear both,不知道什么时候用float,什么时候用relative position,一想起这些我就头大。相反,Winform的布局真的是所见即所得。我可以非常轻松地做到把四个TextBox放在一个GroupBox里面,让它们在一条横线上,中间等距离宽,看起来不说很漂亮,至少简洁大方,用户也能够轻松地理解。WPF?好嘛,先得想想是用StackPanel,WrapPanel,还是Grid什么的。拜托,我又没有做表格,非让我在Grid里面设计干嘛,即使它是不可见的。想想用Winform要显示一个俱乐部客户的详细信息,拖一把基础控件显示基本信息,加上几个标签,每个标签显示某个特定方面的数据,就完了。用WPF?先得想想一共需要多少个Container,哪些控件放在哪个Container里面,哪些Container又放在一个更大的Container里面。如果需要对齐,还得想想用Margin,Alignment分别设置成什么。累啊,也许熟练了之后不觉得累,但是一个是学习需要时间,更重要的是我为什么要去花时间学习,理解,练习,然后掌握一个跟我核心工作不相关的事情呢?

开发人员的重点应该放在系统架构上,想想怎么设计项目结构,有几个Project,每个是干什么用的。类的层次是怎么样的,哪些类用抽象的,哪些要定义接口,等等。 

有多少CS的项目是客户强烈要求界面漂亮到觉得自己干不了,只能去买商业第三方的漂亮控件呢?第三方的控件是漂亮了,我就遇到过由于使用Infragistics的控件导致内存泄漏的问题。类似这种问题在控件开发公司的论坛上一直就没断过。为了追求一点点的漂亮,给程序开发和维护造成很大的影响,真的值得吗?

目前来说,我继续学习WPF的目的可能是为了能在Winform中加入部分WPF控件来局部美化界面吧。 

posted on 2011-11-25 09:43  buaaytt  阅读(614)  评论(0编辑  收藏  举报

导航