迟到的 WPF 学习 —— 控件
这一章书中内容比较多而杂,但每个对象的内容又相对简短,所以只挑选里边有代表性的内容做记录。
1. Label 控件:一个基础的简单的 ContentControl,Labe 支持快捷键文本的设置,可以使用以下方式为 Label 设置,使用必须遵循的语法约定为 Label 设置 Target 属性
<Label Grid.Row="0" Target="{Binding ElementName=txtA}">Choose _A</Label>
<TextBox Grid.Row="1" Name="txtA"/>
<Label Grid.Row="2" Target="{Binding ElementName=txtB}">Choose _B</Label>
<TextBox Grid.Row="3" Name="txtB"/>
为了设置 Target 属性,需要使用一个指向另一个控件的绑定表达式。标签文本中的下划线指示快捷键(如果需要文本包含下划线,可以写上两个下划线解决),当按下 Alt 时两个标签上的 A 字母和 B 字母才会显示在字母下面的下划线(这一点和原 Windows 编程使用的 & 不一样)。绑定的作用似乎是当启动快捷键 Alt+A 时,第一个标签将焦点传递给链接的控件,即 txtA。
在 XAML 中不能直接使用 & 而要在恰当的地方使用 &.(别忘了点儿)
2. 按钮:WPF 提供三类继承自 ButtonBase 的按钮,分别是 Button、CheckBox 和 RadioButton。ButtonBase 添加了一个 ClickMode 属性,用来决定何时引发 Click 事件以响应鼠标动作。默认是 ClickMode.Release,意思是鼠标单击鼠标并释放鼠标键时引发 Click 事件,也可以选择第一次按下鼠标键时(ClickMode.Press)和悬停一会儿(ClickMode.Hover)就引发。
有关按钮的一些特性:
所有的按钮都支持访问键,即快捷键
Button 的 IsCancel 属性设置为 true,即表示成为窗体的取消按钮,在当前窗体的任何位置按下 Escape 都将触发该按钮
Button 的 IsDefault 属性设置为 true,表示成为默认按钮,行为取决于焦点在窗体中的位置。如焦点位于非按钮控件,默认按钮具有蓝色阴影,看起来像具有焦点的样子,按下 Enter 将触发默认按钮。如果焦点位于另一个按钮控件,则不会被传递到默认按钮
Button 还有一个只读属性 IsDefaulted,当焦点位于另一个控件并且该控件不接受 Enter 输入的时候,默认按钮的该属性返回 true。需要注意的是,当默认按钮本身获得焦点时,该属性将返回 False
CheckBox 是一个继承自 ToggleButton 的控件,其 IsChecked 属性是一个可空的值,因此不能简单认为其只包括 true 和 false。在 WPF 为其标记一个 null 值需要使用 null 标记扩展:
<CheckBox IsChecked="{x:Null}">Determinate state</CheckBox>想要将 CheckBox 的状态控制在只能 true 或 false,就设置其 IsThreeState 为 true。ToggleButton 的三种状态都将触发不同的三个事件,方便根据状态处理逻辑。
3. 工具提示:最简单的添加提示可以写在元素定义里,ToolTip=””即可,但在 WPF 里 ToolTip 也是个内容控件,如果想要复杂甚至嵌套其他元素的提示,可以设置元素的 ToolTip 属性,使其包含其他元素即可。
ToolTipService 作为扩展增强辅助类(我自己起的名)存在,它包含了一些 ToolTip 没有的属性和事件,可以提供额外的控制操作。
4. Popup 控件:和 ToolTip 类似,Popup 也只能包含单一内容,但这个单一内容可以包含 WPF 的任何元素(这意味着虽然只能包含一个东西,但你可以放一个容器,然后容器里边放其它元素)。Popup 的内容存储在 Popup.Child 而不像 ToolTip 在 Content 属性。
可以在 XAML 中定义 Popup 但由于必须要手动显示,所以定义的 Popup 控件必须要有 Name 以保证代码可以调用它
5. Expander 控件:Expander 是一个默认折叠起来的控件,Web 中经常可以看到它的身影,它包装了一块儿内容,并通过一个小箭头在显示和隐藏之间切换。ExpandDirection 可以调整折叠的方向,如果需要使其它控件和 Expander 同步,可以实现 Expanded 和 Collapsed 事件,这两个事件分别在显示和隐藏前被触发。
迟到的 WPF 学习 —— 控件的更多相关文章
- WPF DataGrid 控件的运用
WPF DataGrid 控件的运用 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-23 参考: King Cobra 博客 ...
- 示例:自定义WPF底层控件UI库 HeBianGu.General.WpfControlLib V2.0版本
原文:示例:自定义WPF底层控件UI库 HeBianGu.General.WpfControlLib V2.0版本 一.目的:封装了一些控件到自定义的控件库中,方便快速开发 二.实现功能: 基本实现常 ...
- WPF Popup 控件导致被遮挡内容不刷新的原因
WPF Popup 控件导致被遮挡内容不刷新的原因 周银辉 今天在写一个WPF控件时用到了Popup控件,很郁闷的情况是:当popup关闭时,原来被popup挡住的界面部分不刷新,非要手动刷新一下(比 ...
- 创建 WPF 工具箱控件
创建 WPF 工具箱控件 WPF (Windows Presentation Framework) 工具箱控件模板允许您创建 WPF 控件,会自动添加到 工具箱 安装扩展的安装. 本主题演示如何使用模 ...
- wpf打印控件 实现分页打印控件功能
因为 要实现打印 wpf listbox控件 数据特别多 要打印在 几张纸上 找了几天 都没有找到相关的例子 现在 解决了 在这里和大家分享一下 public void print(Fram ...
- WPF常用控件应用demo
WPF常用控件应用demo 一.Demo 1.Demo截图如下: 2.demo实现过程 总体布局:因放大缩小窗体,控件很根据空间是否足够改变布局,故用WrapPanel布局. <ScrollVi ...
- WPF 分页控件 WPF 多线程 BackgroundWorker
WPF 分页控件 WPF 多线程 BackgroundWorker 大家好,好久没有发表一篇像样的博客了,最近的开发实在头疼,很多东西无从下口,需求没完没了,更要命的是公司的开发从来不走正规流程啊, ...
- WPF Image控件中的ImageSource与Bitmap的互相转换
原文:WPF Image控件中的ImageSource与Bitmap的互相转换 1.从bitmap转换成ImageSource [DllImport("gdi32.dll", ...
- 【转】WPF - 第三方控件
WPF - 第三方控件 目前第三方控件在网上形成巨大的共享资源,其中包括收费的也有免费的,有开源的也有不开源的,合理的使用第三方控件将使项目组的工作事半功倍.比如项目中有些复杂的业务逻辑.有些绚丽的效 ...
随机推荐
- php_linux_ubuntu_安装mysql_apache_php
用apt-get方法安装mysql5 + Apache2 + PHP5+Phpmyadmin [建议] http://www.sudu.cn/info/html/edu/20080102/283439 ...
- obj-c编程15[Cocoa实例03]:MVC以及归档化演示样例
前面的博文里介绍了归档和解档,这里我们把它实际应用到一个简单的代码中去,将它作为一个多文档应用程序的打开和保存的背后支持.另外这里介绍一下MVC思想,这个在不论什么语言里都会有,它是一种设计思想,主要 ...
- krpano音量控制(我们已经转移到krpano中国网站 krpano360.com)
需求: 实现音量控制,这是官网的样例, 本文已经转移 到 krpano中文网 p=148">http://krpano360.com/? p=148 很多其它教程关注微信公众号 krp ...
- signalR例子
不用找了,比较全的signalR例子已经为你准备好了. 这几天想着将一个winform的工具上线到web上,因为对时时性的要求比较高,找朋友咨询了一下推荐了SignlarR 框架,比较强大.昨天才 ...
- ResultSet 转为 List或者JavaBean
一.将ResultSet结果集转换为List,其中每条记录信息保存为Map放到List中,方法如下: public static List<Map<String, Object>&g ...
- Linux之ftp命令使用
一:前言 在达内參加暑期社会实践,达内公司免费教授了一星期的课,当时认为老师用ftp命令用的非常爽.所以回来学学了. 二:分类 有关FTP(client,server搭建这里不讲)有非常多,大体分为命 ...
- HDU 3094 A tree game 树删边游戏
叶节点SG值至0 非叶节点SG值至于它的所有子节点SG值添加1 XOR和后 #include <cstdio> #include <cstring> #include < ...
- HDOJ 4416 Good Article Good sentence
题解转自:http://blog.csdn.net/dyx404514/article/details/8807440 2012杭州网络赛的一道题,后缀数组后缀自己主动机都行吧. 题目大意:给一个字符 ...
- 大约php,mysql,html数字寻呼和文本分页2分页样式供大家参考
做盗版.转载请添加源http://blog.csdn.net/yanlintao1 请勿盗版,转载请加上出处http://blog.csdn.net/yanlintao1 首先进行样式展示希望对大家有 ...
- 打印man手册为pdf文件
只需要一个命令就可以了! merlin@tfAnalysis:~/projects/tfadc$ man -t errno | ps2pdf - ~/errno.pdf 输出的文件很漂亮.