控件:
1.内容控件------这些控件可以包含嵌套的元素,为它们提供几乎无限的显示能力。内容控件包括Lable,Button 以及ToolTip类。ide
内容控件是更特殊的控件类型,它们能够包含(并显示)一块内容。从技术角度来说,内容控件是能够包含单个嵌套元素的控件。与布局容器不一样的是内容控件只能包含一个子元素,而布局控件只要愿意能够包含任意多个嵌套元素。
提示:固然,仍然能够在单个内容控件中放置大量内容-----诀窍是使用单个容器,好比,使用StackPanel面板或Grid面板来包装全部内容。例如,Window类自己是一个内容控件,显然窗口经学包含大量内容,但全部内容都包装到一个顶级容器中(这个容器一般是Grid).布局
正如在第三章中所学习的,全部WPF布局容器都继承自抽象的Panel类,该类提供了对包含多个元素的支持。相似的,全部的内容控件都继承自抽象的ContentControl类学习
Content属性
与Panel类提供一个Children集合来保存嵌套的元素不一样,Control类添加一个Content属性,该属性只接受单一对象。Content属性支持任何类型的对象,可是能够将该属性包含的对象分为两大类,针对每一类进行不一样的处理:a:未继承自UIElenment类的对象 内容控件调用这些控件的ToString()方法获取文本,而后显示该文本。
b.继承自UIElenment类的对象 这些对象(包括全部的可视化元素,它们是WPF的组成部分)使用UIElenment.OnRender()方法在内容控件内部进行显示。
注意:能够在内容控件中放置文本内容,国为XAML解析器会将其转换为一个字符串对象,而且使用该字符串对象来设置Content属性,可是,不能直接在一个布局容器中旋转字条串内容,反而,须要使用一个继承自UIElement的类对字条串进行包装。spa
Button类表示一直使用的Windows下压按钮。它添加了两个可写属性:IsCancel和IsDefault。
若是IsCancel属性设置为true,按钮就成为窗口取消按钮,在当前窗口的任何位置若是按下Escape键,就会触发该按钮。
若是IsDefault属性设置为true,按钮就成为默认按钮,它的行为取决于焦点在窗口中的当前位置。若是焦点位于一个非控件上,若是按下Enter键,就会触发默认按钮,但若是焦点位于另外一个按钮上,当前有焦点的按钮就具备蓝色阴影,而且Enter键会触发当前按钮,而不是默认按钮。
CheckBox控件和RadioButton控件是不一样类型的按钮。它们继承自ToggleButton类,这意味着用户能够切换它们的开与关状态,即它们的开关行为。对于checkBox控件,切换到控件的开状态,意味着在其中放置一个复选标记。CheckBox类没有添加任何成员,因此CheckBox类的基本接口是在ToggleButton类中定义的,最重要的是,ToggleButton类添加了IsChecked属性。它是可空的Boolean类型。这意味着该属性能够设置为:true,false,null。显然:true=选中复选框,而false未选中,null值有点麻烦----------它表示复选框是不肯定状态。
RadioButton控件 也继承ToggleButton类,而且使用相同的IsChecked属性和相同的Checked,此外它还增长了一个GroupName属性,该属性用于控制如何对单选按钮进行分组。单选按钮一般由它们的容器进行分组,这意味着若是在一 个StackPanel面板中放置三个单选按钮,那么这三个单选按钮就造成一组,并且只能选择这三个单选按钮中的一个。另外一方面,若是在这两个独立的StackPanel控件中放置一个单选按钮组合,那么就有了两组相互独立的单选按钮。经过使用GroupName属性能够覆盖这一默认行为,可使用该属性在一个容器中建立多个组,或将包含多个容器中的单选按钮建立为一组。
2.带有标题的内容控件----------------这些控件是容许添加一个主要内容部分以及一个单独标题部分的内容控件,它们一般用于包装更大的用户界面块。这类控件包括TabItem,GroupBox以及Expander类。
3.文件控件---------------文件控件比较少,它们容许用户输入文本,文本控件支持普通文本(Textbox),密码(PasswordBox) 以及格式化文本(RickTextBox).
4.基于范围的控件--------------这些控件一般只关心一个属性:Value,可使用预先规定范围内的任何数字设置该属性。例子包括Slider以及ProgressBar类。
5日期控件---------------这类控件包含两个容许用户选择日期的控件:Calendar和DatePicker控件。对象