第二十三章:触发器和行为(一)

简介: 将标记语言(如XAML)引入图形编程环境最初可能只是构建用户界面元素集合的另一种方法。但我们已经看到标记语言往往会产生更深刻的后果。标记语言促使我们在交互式视觉和底层业务逻辑之间更加果断地划分程序。这进一步表明,我们可能会受益于在诸如MVVM之类的应用程序架构中形成这种分离,并且结果证明它非常有价值。

将标记语言(如XAML)引入图形编程环境最初可能只是构建用户界面元素集合的另一种方法。但我们已经看到标记语言往往会产生更深刻的后果。标记语言促使我们在交互式视觉和底层业务逻辑之间更加果断地划分程序。这进一步表明,我们可能会受益于在诸如MVVM之类的应用程序架构中形成这种分离,并且结果证明它非常有价值。
与此同时,与代码相比,像XAML这样的标记语言往往会有一些内在的缺陷。虽然代码通常定义动态过程,但标记语言通常仅限于描述固定状态。 Xamarin.Forms中添加了一些功能来帮助弥补这些缺陷。这些功能包括标记扩展,资源字典,样式和数据绑定。
在本章中,您将看到另外两个称为触发器和行为的功能。触发器会导致对用户界面的更改以响应事件或属性更改,而行为更加开放,允许将整个功能块添加到现有可视元素。触发器和行为都可以是样式定义的一部分。通常,可以包含动画的代码支持触发器和行为。
触发器和行为甚至不可能在代码编程环境中构思或发明。 但是,与资源字典,样式和数据绑定一样,这些功能通过建议其他方法来概念化这些程序的各个部分和组件,以及重用和共享代码的其他方法,从而帮助开发人员更有效地构建其应用程序。
触发器和行为是使用将在本章中介绍的几个类实现的。 您将使用由VisualElement和Style定义的两个集合属性来使用这些触发器和行为:

  • 触发IList 类型的属性
  • IList类型的行为属性

让我们从触发器开始吧。

目录
相关文章
|
JavaScript Android开发
第二十三章:触发器和行为(十二)
淡化和定向在本书中,您已经看到了几个颜色选择程序,可以通过使用三个Slider元素以交互方式形成颜色。 本章的最后一个示例是另一个颜色选择程序,但是这个程序为您提供了选项:它包含三个标记为“RGB Hex”,“RGB Float”和“HSL”的单选按钮(实际上是简单的Label元素)。
677 0
|
JavaScript Android开发
第二十三章:触发器和行为(十一)
单选按钮内置于旧汽车仪表板中的无线电通常具有一排六个(左右)按钮,可以为各种无线电台“编程”。 按下其中一个按钮会导致无线电跳转到该预选电台,并且还会弹出前一个选择按钮。那些旧的汽车收音机现在是古董,但我们的电脑屏幕上的互斥选项仍然由我们称为单选按钮的视觉对象表示。
883 0
|
JavaScript Android开发
第二十三章:触发器和行为(十)
响应水龙头切换视图的各种表现形式演示了一种响应XAML文件中的点击的方法。 如果将tap事件集成到VisualElement类中,您可以使用EventTrigger更直接且更轻松地获取它们。 但是您无法将EventTrigger附加到TapGestureRecognizer。
523 0
|
JavaScript Android开发 Windows
第二十三章:触发器和行为(九)
切换和复选框在第15章“交互式界面”和第16章“数据绑定”中,您了解了如何构造传统的CheckBox视图。 但是,自定义视图的另一种方法是将视图的交互逻辑合并到行为中,然后完全在XAML中实现视觉效果。
703 0
|
Android开发
第二十三章:触发器和行为(八)
具有属性的行为Behavior 类派生自Behavior类,该类派生自BindableObject。这表明您的Behavior 派生可以定义自己的可绑定属性。之前你看过一些Action 衍生产品,比如ScaleAction和ShiverAction,它们定义了一些属性以赋予它们更大的灵活性。
622 0
|
JavaScript Android开发
第二十三章:触发器和行为(七)
行为 触发器和行为通常是串联讨论的,因为它们具有一些应用重叠。 有时候你会感到困惑是否使用触发器或行为,因为似乎要么这样做工作。你可以用触发器做任何事情,你也可以做一个行为。 但是,行为总是涉及一些代码,这是一个派生自Behavior 的类。
917 0
|
JavaScript Android开发
第二十三章:触发器和行为(六)
MultiTrigger中的组合条件Trigger和DataTrigger都有效地监视属性以确定它是否等于特定值。 这称为触发器的条件,如果条件为真,则调用Setter对象的集合。作为程序员,您可能会开始怀疑是否可以在触发器中具有多个条件。
623 0
|
JavaScript Android开发 iOS开发
第二十三章:触发器和行为(五)
数据触发器到目前为止,您只看到在特定对象的上下文中运行的触发器。 触发器通过更改同一对象的另一个属性或通过调用影响该对象的Action来响应对象属性的更改。 EventTrigger同样响应一个对象触发的事件,以在同一个对象上调用Action。
888 0
|
JavaScript Android开发 Windows
第二十三章:触发器和行为(四)
更多事件触发器前一章关于动画的章节展示了一个按钮,它在点击时旋转或缩放。 虽然大多数动画示例都是为了制作有趣的演示而采取极端措施,但是按钮用一点动画来响应点击并不是不合理的。 这是EventTrigger的完美工作。
732 0
|
JavaScript Android开发
第二十三章:触发器和行为(三)
触发动作和动画虽然某些触发器可以完全在XAML中实现,但其他触发器需要一些代码支持。 如您所知,Xamarin.Forms没有直接支持在XAML中实现动画,因此如果您想使用触发器为元素设置动画,则需要一些代码。
925 0