生成的界面如下:

由此可知,WrapPanel默认的布局是横向,等到右边没有空余,其余的控件将从第二行开始重新排列。
如果将其Orientation属性设置Vertical那么排列将会从左上角开始,从上到下排列,下面没有空余将会从第二行开始从上而下重新排列。如下xaml:
<WrapPanel Orientation="Vertical">
<Button Name="btn1" Height="40" Width="40" Content="btn1" />
<Button Height="30" Width="40" Content="btn2" />
<Button Height="30" Width="40" Content="btn2" />
<Button Height="30" Width="40" Content="btn2" />
<Button Height="30" Width="40" Content="btn2" />
</WrapPanel>
窗体布局如下:

由上可知,WrapPanel主要提供的功能是从窗体左上角开始,多控件的自动换行。
第二个总结:
WPF中的布局除此之外还有如下的几种:abPanel, ToolBarOverflowPanel, ToolBarPanel, UniformGrid, VirtualizingPanel, VirtualizingStackPanel,它们都派生于Panel抽象类,内容属性Children可以添加多个控件。它们藉此来控制控件的布局。
3.2 控件
其实布局也是控件的一种,但是单独讲布局列出来。因为布局在WPF中占据着异常重要的地位。接下来,主要说一下其他的控件,大体上,除了布局之外的控件可以分为以下的三类。
第一类:核心用户输入控件,用户创建用户界面的核心。其中比较常用的有Button、RadioButton、ComboBox、CheckBox、DataGrid、ListBox、ListView、TreeView、TextBlock、TextBox、Label。
第二类:窗口修饰控件,这些元素用于装饰Window对象的框架。其中常用的有Menu、ToolBar、StatusBar、ToolTip、ProgressBar。
第三类:媒体控件,支持音频/视频的重放和图像的显示。其中比较常用的控件有Image、MediaElement、SoundPlayerAction。
下面分别说说每类控件的基本功能。
一、 核心用户输入控件
1、 Button、RadioButton,Button控件的基础用法,主要是处理单击Button的时候对单击事件处理的方式。Button的单击事件是通过Click特性声明,其模式主要有三种:
Release:Button被按下然后松开时发生单击事件
Hover: 鼠标悬停在按钮上方引发单击事件
Press:当单击按钮时引发单击事件
我们可以利用Button单击事件的模式设置我们想要的点击控件的效果。
Button是内容控件,我们可以给它的内容设置其他的东西,比如下面的代码,就是给一个Button按钮设置图片:










