今天准备用一下Treeview控件,发现没有imagelist,十分郁闷。查了一下资料,实现的方法也有,因为header是一个容器,可以容纳图片、文字,那么就把header设成stackpanel,然后在stackpanel里面加image和textblock,实在搞不懂这样效率是否会高。WPF太灵活,对于高级一点的,华丽一点的界面可能还有优势,比如在TreeviewItem里面有其他控件,但是就一个带图片的Treeview,Winform实现起来要简便多了。
在Winform中,Application.DoEvents()让操作系统接管一下,wpf中则搞的很麻烦,
public static void DoEvents()
{
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new ThreadStart(delegate { }));
}
今天遇到的这两个问题,再次引起了我对WPF优势的思考,网上归纳的最大优势有以下几个方面:
(1)界面设计代码和逻辑代码分离。如果界面有一个预估,可以用xaml直接写出来也行。但是像我用Treeview,里面的东西需要动态加载,还要动态管理,不可能一开始在xaml代码中写出来。所以用这个优势也得看情况,winform能实现的,用WPF反而要浪费很多时间。
(2)图形、图像、多媒体、动画功能很强大。这个没用过,问题的关键是现在还用不上。用到的时候再说吧。
(3)数据绑定。目前用的不多。
总的说来,现在就做了一个登录对话框,确实比以前的要漂亮多了。比如文本框的边框带圆角。但是程序的主界面用WPF来做,发现没有能够WPF的优势的地方,反而要耗费大量的事件。放弃吧。。。