2011年1月14日
摘要: 我们希望能够直接将对象和对象的集合绑定到 Avalon UI 元素。作为一个示例,以下代码显示了我们用于探究绑定在 Avalon 中数据的 Person 类。IPropertyChange 接口由 Person 类实现,以通知绑定到实例的任意控件,其中一个属性已经更改。相反,公共属性让绑定控件的数据可以访问每个属性的当前值,并应用 UI 中发起的变化。图 1 中的 Name 和 Age TextBox 控件显示了 Person 对象的一个实例,该对象绑定到每个控件的 TextContent 属性。图 1. 管理使用 Avalon 数据绑定的 Person 对象的列表返回页首当前项目在 Name 阅读全文
posted @ 2011-01-14 14:24 guoxuefeng 阅读(1725) 评论(0) 推荐(0) 编辑
摘要: 本页内容 背景 Avalon 中的动画 触发动画 更多动画 弹回 两个时间线优于一个 后续内容 背景“Longhorn”表示子系统(代号“Avalon”)添加到用户界面工具箱的一个重要功能就是动画。您可能会问,“为什么需要在我的用户界面中添加动画”?实际上,有很多理由。首先,动画是将用户的注意力吸引到界面特定部分的一种好方法。例如,想象一下,向导中的 Next 按钮弹出以告诉您现在可以进入过程的下一步。其次,当界面在状态之间转换时,动画可以帮助用户维护上下文。当 Office 菜单从最近选择的命令扩展到整个菜单时,您就可以找到这样的示例。动画还可以使您在用户界面中更好地节省屏幕空间。例如,看一 阅读全文
posted @ 2011-01-14 14:18 guoxuefeng 阅读(1746) 评论(0) 推荐(0) 编辑
摘要: 虽然您可以在应用程序中使用通用听写语言模型,但是很快您将遇到大量应用程序开发困难,它们是关于如何处理识别结果的。例如,以比萨饼定购系统为例。用户可能说“I'd like a pepperoni pizza”,结果将包含该字符串。但是它也可能包含“I'd like pepper on a plaza”,或者很多发音类似的语句,这取决于用户的发音差别或背景噪音情况。同样,用户可能说“Mary had a little lamb”,而结果将包含它,即使它对于比萨饼定购系统毫无意义。所有这些错误的结果对于应用程序而言毫无用处。因此,应用程序应该始终提供专门描述应用程序所要听到内容的语法。在图 8 中, 阅读全文
posted @ 2011-01-14 14:13 guoxuefeng 阅读(7427) 评论(1) 推荐(2) 编辑
摘要: 本页内容 10. 高级图形 9. 绘制对象模型 8. 丰富的应用程序文本 7. 可修改的 UI 布局 6. 灵活的内容模型 5. 无外观控件 4. 数据驱动UI 3. 一致的风格 2. 触发器 1. 声明性编程 我们所处的位置当前基于 Win32 的 Windows UI 图形子系统(创建于 Windows® XP 中)已经使用了将近 20 年。它不仅过时了而且有很多限制,从而在某种程度上桎梏了用户界面开发。Windows Presentation Foundation (WPF)(内置于 .NET Framework 之中)为开发应用程序提供了新技术,并可以更好地使用当前的硬件和技术。本文, 阅读全文
posted @ 2011-01-14 14:05 guoxuefeng 阅读(1053) 评论(0) 推荐(0) 编辑
摘要: 绑定到数据库数据在本系列的第一部分中,我们探究了原始绑定语法以及如何将简单对象绑定到 XAML 对象。虽然这是该难题的一个重要部分,但大多数情况下,实际的要求是绑定到数据库中存储的数据。在大多数情况下,它支持两种不同方案中的绑定:数据库数据(例如,DataSet、DataTable 和 DataRow)和自定义业务对象。绑定到数据库数据目前,数据库仍然是进行大多数开发工作的中心,特别是企业开发。为了举例说明,我们可以使用一个简单的 WPF 对话框示例,它将允许用户浏览数据库中的雇员。我们希望能够在浏览器中显示一小部分信息,包括雇员照片。还需要加载一个包含所需全部信息的表。通过新建一个包含数据库 阅读全文
posted @ 2011-01-14 13:58 guoxuefeng 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 本页内容 简介 简化的 XAML 绑定 我们所处的位置 参考资料简介Windows Presentation Foundation(以前称作 Avalon)为胖客户端开发用户界面引入了一个意义深远的新方法。WPF 第一次将用户界面设计与代码设计相分离。这种分离意味着,通常标记在一个文件中而代码则在另一个文件中,这与 ASP.NET 很类似。然而,这种分离仅在编译时存在。标记文件用于生成形成代码文件的代码,进而生成应用程序。 为了便于设计,Microsoft 开发了一种丰富的标记语言,称作 XAML。XAML 是一种基于 XML 的标记语言,它支持一个用于开发特定应用程序的新模型,这些应用程序具 阅读全文
posted @ 2011-01-14 13:32 guoxuefeng 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 每次要学点新东西时,我都会发现使用教程比阅读文档要简单、省事得多。假定大多数人都有同感,难道您真的会在尝试使用某个东西之前先阅读说明吗?我肯定不会。为此,我已经决定直接付诸行动,演练如何构建一个 Windows Presentation Foundation (WPF) 应用程序。由于这是 Coding4Fun,而且世界上有足够多的企业-Web 2.0-数据-门户-小玩意,那么就让我们面对这个现实,来准备做一个游戏吧!遗憾的是,我认为在此直接制作 Halo 3 游戏并不现实,因此,我认为更小的游戏可能更合适,也就是说在这些教程结束时能够完成的游戏,比如说数独游戏。嗨,好处是您可以在工作中玩数独 阅读全文
posted @ 2011-01-14 13:23 guoxuefeng 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 绑定是要点所在 更好的绑定 绑定到复数数据 自定义数据绑定样式 跟踪集合更改 我们所处的位置“任何使用 Avalon 的人如果不使用数据绑定,一定会发疯。”–Mark Boulter 2004 年 6 月 2 日我热爱我选择的生活方式,因为我花费一大部分时间来进行学习。当我学习新东西时,我从来不会对大脑中突然蹦出的“灵感”感到厌烦。最近我的大脑中就出现过这样一个灵感,它促使我从根本上重新考虑我编写用户界面的方法。下面是一个表明我原来做法的简单示例:在上述代码中,我拥有一个窗口,其中含有一个类型为 Game 的自定义组件,该组件具有一个 Score 属性,当该属性更改时将引发 ScoreChan 阅读全文
posted @ 2011-01-14 13:11 guoxuefeng 阅读(720) 评论(0) 推荐(0) 编辑
摘要: System.Speech.Synthesis让我们看一下关于如何从托管应用程序使用语音合成的示例。作为最典型的一个 UI 输出示例,我将从只说出“Hello, world”的应用程序开始,如图 5 所示。该示例是一个明显的控制台应用程序,是最近使用 Visual C#® 创建的,其中添加了三行代码。所添加的第一行只引入 System.Speech.Synthesis 命名空间。第二行声明并实例化 SpeechSynthesizer 的实例,它准确表示了其名称的含意:语音合成器。所添加的第三行是对 SpeakText 的调用。这是调用合成器所需的全部。默认情况下,SpeechSynthesiz 阅读全文
posted @ 2011-01-14 12:28 guoxuefeng 阅读(13352) 评论(0) 推荐(3) 编辑