01 2020 档案

摘要:内容控件(content control)是更特殊的控件类型,它们可包含并显示一块内容。从技术角度看,内容控件时可以包含单个嵌套元素的控件。与布局容器不同的是,内容控件只能包含一个子元素,而布局容器主要愿意可以包含任意多个牵头元素。 正如前面所介绍,所有WPF布局容器都继承自抽象类Panel,该类提 阅读全文
posted @ 2020-01-31 22:30 Peter.Luo 阅读(1905) 评论(0) 推荐(4) 编辑
摘要:WPF窗口充满了各种元素,但这些元素中只有一部分是控件。在WPF领域,控件通常被描述为与用户交互的元素——能接收焦点并接受键盘或鼠标输入的元素。明显的例子包括文本框和按钮。然而,这个区别有时有些模糊。将工具提示视为控件,因为它根据用户鼠标的移动显示或消失。将标签视为控件,因为它支持记忆码(mnemo 阅读全文
posted @ 2020-01-30 21:04 Peter.Luo 阅读(1367) 评论(0) 推荐(1) 编辑
摘要:多点触控(multi-touch)是通过触摸屏幕与应用程序进行交互的一种方式。多点触控输入和更传统的基于笔(pen-based)的输入的区别是多点触控识别手势(gesture)——用户可移动多根手指以执行常见操作的特殊方式。例如,在触摸屏上放置两根手指并同时移动他们,这通常意味着“放大",而以一根手 阅读全文
posted @ 2020-01-30 16:20 Peter.Luo 阅读(2623) 评论(1) 推荐(0) 编辑
摘要:鼠标事件执行几个关联的任务。当鼠标移到某个元素上时,可通过最基本的鼠标事件进行响应。这些事件是MouseEnter(当鼠标指针移到元素上时引发该事件)和MouseLeave(当鼠标指针离开元素时引发该事件)。这两个事件都是直接事件,这意味着他们不使用冒泡和隧道过程,而是源自一个元素并且只被该元素引发 阅读全文
posted @ 2020-01-28 22:41 Peter.Luo 阅读(1504) 评论(0) 推荐(0) 编辑
摘要:当用户按下键盘上的一个键时,就会发生一系列事件。下表根据他们的发生顺序列出了这些事件: 表 所有元素的键盘事件(按顺序) 键盘处理永远不会像上面看到的这么简单。一些控件可能会挂起这些事件中的某些事件,从而可执行自己更特殊的键盘处理。最明显的例子是TextBox控件,它挂起了TextInput事件。对 阅读全文
posted @ 2020-01-28 17:12 Peter.Luo 阅读(3497) 评论(0) 推荐(2) 编辑
摘要:前两章学习了WPF事件的工作原理,现在分析一下在代码中可以处理的各类事件。尽管每个元素都提供了许多事件,但最重要的事件通常包括以下5类: 生命周期事件:在元素被初始化、加载或卸载时发生这些事件。 鼠标事件:这些事件是鼠标动作的结果。 键盘事件:这些事件是键盘动作(如按下键盘上的键)的结果。 手写笔事 阅读全文
posted @ 2020-01-27 20:48 Peter.Luo 阅读(1352) 评论(0) 推荐(0) 编辑
摘要:由上一章可知,WPF中的许多控件都是内容控件,而内容控件可包含任何类型以及大量的嵌套内容。例如,可构建包含图形的按钮,创建混合了文本和图片内容的标签,或者为了实现滚动或折叠的显示效果而在特定容器中放置内容。设置可以多次重复嵌套,直至达到你所希望的层次深度。如下所示: <Window x:Class= 阅读全文
posted @ 2020-01-27 15:57 Peter.Luo 阅读(1118) 评论(1) 推荐(1) 编辑
摘要:每个.NET开发人员都熟悉“事件”的思想——当有意义的事情发生时,由对象(如WPF元素)发送的用于通知代码的消息。WPF通过事件路由(event routing)的概念增强了.NET事件模型。事件路由允许源自某个元素的事件由另一个元素引发。例如,使用事件路由,来自工具栏按钮的单击事件可在被代码处理之 阅读全文
posted @ 2020-01-27 11:31 Peter.Luo 阅读(1448) 评论(1) 推荐(0) 编辑
摘要:在定义任何类型的属性时,都需要面对错误设置属性的可能性。对于传统的.NET属性,可尝试在属性设置器中捕获这类问题。但对于依赖项属性而言,这种方法不合适,因为可能通过WPF属性系统使用SetValue()方法直接设置属性。 作为代替,WPF提供了两种方法来阻止非法值: ValidateValueCal 阅读全文
posted @ 2020-01-24 19:19 Peter.Luo 阅读(1115) 评论(0) 推荐(1) 编辑
摘要:依赖项属性是标准.NET属性的全新实现——具有大量新增价值。在WPF的核心特性(如动画、数据绑定以及样式)中需要嵌入依赖项属性。WPF元素提供的大多数属性都是依赖项属性。到目前位置所见到的所有示例都用到了依赖项属性,但你可能还没有意识到这一点。这是因为依赖项属性的用法和普通属性的是相同的。 然而,依 阅读全文
posted @ 2020-01-24 15:40 Peter.Luo 阅读(1826) 评论(1) 推荐(1) 编辑
摘要:前几章用了相当大的篇幅研究有关WPF布局容器的复杂内容。在掌握了这些基础知识后,就可以研究几个完整的布局示例。通过研究完整的布局示例,可更好的理解各种WPF布局概念在实际窗口中的工作方式。 一、列设置 布局容器(如Grid面板)使得窗口创建整个布局结构变得非常容易。例如,分析如下显示的窗口及设置。该 阅读全文
posted @ 2020-01-23 20:19 Peter.Luo 阅读(1443) 评论(0) 推荐(0) 编辑
摘要:Canvas面板允许使用精确的坐标放置元素,如果设置数据驱动的富窗体和标准对话框,这并非好的选择;但如果需要构建其他一些不同的内容(例如,为图形工具创建创建绘图表面),Canvas面板可能是个有用的工具。Canvas面板还是最轻量级的布局容器。这是因为Canvas面板没有包含任何复杂的布局逻辑,用以 阅读全文
posted @ 2020-01-23 17:43 Peter.Luo 阅读(2237) 评论(0) 推荐(2) 编辑
摘要:Gird面板是WPF中功能最强大的布局容器。很多实用其他布局控件能完成的功能,用Grid面板也能实现。Grid面板也是将窗口分割成更小区域的理想工具。实际上,由于Grid面板十分由于ong,因此在Visual Studio中为窗口添加新的XAML文档时,会自动添加Grid标签作为顶级容器,并嵌套在W 阅读全文
posted @ 2020-01-12 17:02 Peter.Luo 阅读(2477) 评论(0) 推荐(2) 编辑
摘要:显然,只使用StackPanel面板还不饿能帮助用户创建出实用的用户界面。要设计出最终使用的用户界面,StackPanel面板还需要与其他更强大的布局容器协作。只有这样才能组装成完整的窗口。 最复杂的布局容器是Grid面板,后面几章会进行介绍。在介绍Grid面板之前,有必要首先看一下WrapPane 阅读全文
posted @ 2020-01-07 22:00 Peter.Luo 阅读(1901) 评论(0) 推荐(1) 编辑
摘要:StackPanel面板是最简单的布局容器之一。该面板简单地再单行或单列中以堆栈形式放置其子元素。 例如,分析下面的窗口,该窗口包含4个按钮: 下图显示了最终结果图: 默认情况下,StackPanel面板按自上而下的顺序排列元素,使每个元素的高度适合它的内容。在这个示例中,这意味着标签和按钮的大小刚 阅读全文
posted @ 2020-01-07 20:38 Peter.Luo 阅读(4444) 评论(0) 推荐(3) 编辑
摘要:在Windows开发人员设计用户界面的方式上,WPF布局模型是一个重大改进。在WPF问世之前,Windows开发人员使用刻板的基于坐标的布局将控件放到正确位置。在WPF中,这种方式虽然可行,但已经极少使用。大多数应用程序将使用类似Web的流(flow)布局;在使用流布局模型时,控件可以扩大,并将其他 阅读全文
posted @ 2020-01-05 23:40 Peter.Luo 阅读(1366) 评论(0) 推荐(1) 编辑
摘要:前面已经介绍过,尽管XAML和WPF这两种技术具有相互补充的作用,但他们也是相互独立的。因此,完全可以创建不使用XAML和WPF应用程序。 总之,可使用三种不同的编码方式来创建WPF应用程序: 只使用代码。这是在Visual Studio中为Windows窗体应用程序使用的传统方法。它通过代码语句生 阅读全文
posted @ 2020-01-05 18:04 Peter.Luo 阅读(3652) 评论(1) 推荐(1) 编辑
摘要:前面已经介绍了如何在XAML中使用WPF中的类来创建基本的用户界面。但XAML是实例化.NET对象的通用方法,包括那些位于其他非WPF名称空间以及自己创建的名称空间中的对象。 创建那些不是用于在XAML窗口中显示的对象听起来像是多余的,但在很多情况下这是需要的。一个例子是,但使用数据绑定并希望在某个 阅读全文
posted @ 2020-01-04 22:48 Peter.Luo 阅读(1349) 评论(0) 推荐(1) 编辑
摘要:1、简单属性和类型转换器 在添加文本框时,经常会设置文本框对齐方式、字体、字体大小和页边距等信息, 如下文本框示例所示: 为使上面的设置起作用,System.Windows.Controls.TextBox类必须提供以下属性:VerticalAlignment、HorizontalAlignment 阅读全文
posted @ 2020-01-03 21:47 Peter.Luo 阅读(2176) 评论(0) 推荐(3) 编辑

点击右上角即可分享
微信分享提示