ListView、ListBox和GridView的结构
最近对Win8的ListView和GridView以及WP上的ListBox进行了研究。主要结构如下:
①Win8中的ListView和GridView
ListView(虚线左侧)和GridView(虚线右侧)的结构如下图所示,从上到下为包含关系。由图中可以看到,其实ListView和GridView是很相似的,其主要不同在于最下面4层。造成布局方式不同的主要控件是ItemPanel,当用StackPanel去代替GridView的ItemsPanel,可以看到GridView变成了单列。ContentPresenter是Datatemplate的容器,其行为主要由ItemsContainerStyle控制。
②WP下的ListBox
ListBox的结构如下图。
ListBox的结构如下图。