wordpress 站点主页,做购物网站是怎么连接银行,网站开发PHP招聘,深圳网站建设 设计首选深圳市前面给大家介绍完了WPF所有的布局控件#xff0c;属性以及使用案例#xff0c;从这里咱们就开始学下内容控件。
Control基类
Control是许多控件的基类。比如最常见的按钮#xff08;Button#xff09;、单选(RadioButton)、复选#xff08;CheckBox#xff09;、文本框…前面给大家介绍完了WPF所有的布局控件属性以及使用案例从这里咱们就开始学下内容控件。
Control基类
Control是许多控件的基类。比如最常见的按钮Button、单选(RadioButton)、复选CheckBox、文本框TextBox、ListBox、DataGrid、日期控件等等。这些控件通常用于展示程序的数据或获取用户输入的数据这一类型的控件称为内容控件或数据控件。
它们与前面的布局控件有一定的区别布局控件更专注于界面而内容控件更专注于数据业务。
1. 属性
Control类虽然可以实例化但是在界面上是不会有任何显示的。只有那些继承了Control的子类控件才会在界面上显示而且所呈现的样子各不相同因为Control类提供了一个控件模板ControlTemplate而几乎所有的子类都对这个ControlTemplate进行了各自的实现所以在呈现子类时我们才会看到Button拥有Button的样子TextBox拥有TextBox的样子。
FontStyle获取或设置控件的字体结构类似于Word中字体的常规、斜体或倾斜FontStretch获取或设置紧缩或在屏幕上展开一种字体的程度。FontSize获取或设置字体大小。FontFamily获取或设置控件的字体系列。如微软雅黑 “Microsoft YaHei UI”Foreground获取或设置控件的字体颜色也就是所谓的前景色画笔它是一个刷子BrushBackground获取或设置一个用于描述控件的背景画笔。BorderThickness获取或设置控件的边框宽度。IsTabStop获取或设置一个值该值指示控件是否包括在选项卡上的导航窗格中。VerticalContentAlignment获取或设置控件的内容的垂直对齐方式。TabIndex获取或设置一个值确定当用户导航控件通过使用 TAB 键元素接收焦点的顺序。Padding 获取或设置在控件中的填充量。Template获取或设置控件模板。FontWeight获取或设置指定的字体粗细。BorderBrush获取或设置一个用于描述一个控件的边框背景画笔。HorizontalContentAlignment获取或设置控件的内容的水平对齐方式。
2. 事件
Control类还提供了两个事件它们分别是PreviewMouseDoubleClick和MouseDoubleClick。
PreviewMouseDoubleClick表示鼠标双击或多次单击时触发的事件。MouseDoubleClick表示鼠标双击或多次单击时触发的事件。
以Preview开头的事件叫隧道事件或预览事件而MouseDoubleClick没有以Preview开头所以它叫冒泡事件。 WPF的前端代码其实是一棵树当我们在某个目标控件上进行鼠标操作时所引发的事件有两个方向一是从Winow根节点一直路由到目标控件上看起来就好像是从外面一直沿着这棵树路由引发至里面这就像我们开车进入隧道一样所以Preview开头的事件叫隧道事件。 冒泡事件事件的路由方向相反是从目标控件位置开始一直路由引发至最外层的Window窗体。
关于路由事件后面我们会细聊。
ContentControl类内容控件
它有一个Content属性这个属性的类型是object。本质上它可以接收任意引用类型的实例。 但是通常情况下Content属性接收UI控件。因为ContentControl控件最终会把Content属性里面的内容显示到界面上。
如果我们将非要把其它类型的对象比如字符串强行塞给Content属性如下 ContentControl ForegroundRed FontSize36 HorizontalAlignmentCenter VerticalAlignmentCenter我爱学习WPF/ContentControl最后我们发现也能够正常显示。
ContentTemplate属性内容模板
这个属性表示获取或设置用来显示的内容的数据模板如果没有设置数据模板它将以默认的数据模板来显示这几个字。我们看下这个属性的用法并简要说明其中的关系。 ContentControl ForegroundRed FontSize36 HorizontalAlignmentCenter VerticalAlignmentCenterContentControl.ContentTemplateDataTemplateTextBlock Text{Binding} ForegroundGreen FontSize16//DataTemplate/ContentControl.ContentTemplate我爱WPF/ContentControlContentControl类的ContentTemplate属性是DataTemplate类型所以我们在xaml中实例化了一个DataTemplate数据模板对象并在其中增加了一个TextBlock控件将TextBlock控件的Text属性写成了Binding形式并设置了字体颜色和大小。
最终呈现的效果上图所示字体颜色为绿色大小为16。虽然ContentControl也设置了字体颜色为红色大小为36但是已经失效了。
ButtonBase基类
ButtonBase是一个抽象类所以它不能被实例化。我们只能在它的子类中去使用它提供的一些属性、事件或方法成员。它只有一个事件就是Click单击事件毕竟鼠标双击事件在它的Control基类就有了嘛。另外它还有一个非常厉害的Command属性这个属性其实是一个接口起什么作用呢就是在单击按钮时去执行这个Command属性所指定的一个具体命令。
这个Command命令是WPF命令系统里面的角色也是WPF优于Winform的一个具体表现Command命令也是MVVM模式中最重要的一环。
按钮的形式有如下
Button普通按钮CheckBox 复选框按钮RadioButton 单选框按钮ToggleButton 是CheckBox、RadioButton的基类表示可以切换状态RepeatButton 重复表示从按下到弹出过程中重复引发Click事件GridViewColumnHeader 表示GridViewColumn 的列标题其实它也是一个按钮DataGridColumnHeader 表示DataGrid 列标题也是一个按钮DataGridRowHeader 表示DataGrid 行标题也是一个按钮
1. ButtonBase的属性
CommandTarget获取或设置要对其引发指定的命令的元素。CommandParameter获取或设置一个命令参数这个参数是传递给Command 属性所指向的命令。Command获取或设置要在按此按钮时调用的命令。IsPressed获取当前按钮是否处于激活状态。ClickMode获取或设置按钮的单击模式IsEnabledCore获取的值 System.Windows.ContentElement.IsEnabled 属性。
2. ButtonBase方法
ButtonBase还提供了两个虚方法分别是OnClick()和OnIsPressedChanged()。说明这两个方法也是可以重写的OnClick表示在按钮单击时执行的方法。