Windows通用应用开发手记-Behavior SDK概述

22 篇文章 0 订阅
1 篇文章 0 订阅
随着Visual Studio 2013的发布,New Behavior SDK也一起出现了。和Expression Blend SDK相似,包括各种内置行为(behavior和action),可以用来为你的应用增加交互性,和Blend一起使用时可以无需编写任何代码。Behavior SDK使用时唯一要做的就是实现他们的接口。

Behavior和Action

•在应用中,能够给UI元素添加多个behavior,其中,每个行为(behavior)都有一个方法,当行为被附加到依赖对象时会被调用,从依赖对象移除时也会调用。
•而对于action,每个action只有一个确定的方法,且仅当符合特定条件是才会被调用,条件可能是事件(event),也可能是数据状态,甚至是任何东西。


使用时behavior和action会一起使用,behavior指定了action被执行的原因和条件,取代了旧版SDK中的触发器(Trigger)。

 
命名空间

•Microsoft.Xaml.Interactions.Core


•Microsoft.Xaml.Interactions.Media


•Microsoft.Xaml.Interactivity


SDK内容

Behavior SDK内容主要有两个部分,分别是:
1.少量通用的Behavior和Action,可以直接拿来使用,主要在Microsoft.Xaml.Interactions.Core及Microsoft.Xaml.Interactions.Media命名空间下,他们包括:

Actions:

   CallMethodAction : 当被执行时可以在特殊对象上调用一个方法。

   ChangePropertyAction :当被执行时可以改变特定属性的值。

   GoToStateAction : 当被执行时可以改变特定FrameworkElement的VisualStatus。

   InvokeCommandAction : 当被执行时可以调用特定的ICommand命令。

   NavigateToPageAction : 当被执行时可以跳转到特定的Page页面。

   ControlStoryboardAction : 当被执行时可以改变特定故事板的状态。

   PlaySoundAction : 当被执行时可以播放特定声音。

 
Behaviors:

   DataTriggerBehavior : 当绑定的数据满足特定条件时,执行相应的Action。

   EventTriggerBehavior :当侦听的事件被触发时,执行相应的Action。

   IncrementalUpdateBehavior :允许ListView和GridView的内容增量更新的行为,可以在他们的ItemTemplate中使用,以提供平滑的体验。

 
2.用于实现自定义behavior的接口和工具,主要在Microsoft.Xaml.Interactivity命名空间下,主要使用的接口为IBehavior及IAction。


如何使用?

最简单的方法是使用Blend自动生成,当然在xaml中手写也是完全可以的。




Blend生成的代码如下,这里我们使用的是CallMethodAction:

<Interactivity:Interaction.Behaviors>




                <Core:EventTriggerBehavior EventName="Click">




                    <Core:CallMethodAction




                              TargetObject="{Binding Mode=OneWay}"




                              MethodName="SayHello"/>




                </Core:EventTriggerBehavior>




    </Interactivity:Interaction.Behaviors>



其他Action使用示例,示例代码如下:

1.NavigateToPageAction

<Interactivity:Interaction.Behaviors>




            <Core:EventTriggerBehavior EventName="Click">




<Core:NavigateToPageAction TargetPage="BehaviorDemo.CallMethodActionDemo"/>




            </Core:EventTriggerBehavior>




</Interactivity:Interaction.Behaviors>




2.InvokeCommandAction

<Interactivity:Interaction.Behaviors>




                <Core:DataTriggerBehavior Binding="{Binding InputText}"




                        ComparisonCondition="NotEqual" Value="">




                    <Core:InvokeCommandAction Command="{Binding




                                        ChangeColorCommand, Mode=OneWay}"/>




                </Core:DataTriggerBehavior>




            </Interactivity:Interaction.Behaviors>



3.ChangePropertyAction

<Interactivity:Interaction.Behaviors>




                   <Core:EventTriggerBehavior EventName="GotFocus">




            <Core:ChangePropertyAction PropertyName="Background"




                                        Value="Purple"/>




        </Core:EventTriggerBehavior>




        <Core:EventTriggerBehavior EventName="LostFocus">




            <Core:ChangePropertyAction PropertyName="Background"




                                        Value="LightGray "/>




              </Core:EventTriggerBehavior>




        </Interactivity:Interaction.Behaviors>



4.ControlStoryboardAction

<Interactivity:Interaction.Behaviors>




        <Core:EventTriggerBehavior EventName="Click">




            <Media:ControlStoryboardAction




                Storyboard="{StaticResource myStoryboard}"




                ControlStoryboardOption="TogglePlayPause"/>




        </Core:EventTriggerBehavior>




</Interactivity:Interaction.Behaviors>




5.GoToStateAction

<Interactivity:Interaction.Behaviors>




        <Core:EventTriggerBehavior EventName="PointerPressed">




            <Core:GoToStateAction StateName="Pressed"/>




        </Core:EventTriggerBehavior>




        <Core:EventTriggerBehavior EventName="PointerReleased">




            <Core:GoToStateAction StateName="UnPressed"/>




        </Core:EventTriggerBehavior>




</Interactivity:Interaction.Behaviors>




6.PlaySoundAction

<Interactivity:Interaction.Behaviors>




        <Core:EventTriggerBehavior>




            <Core:CallMethodAction MethodName="StartTimer"




                TargetObject="{Binding Mode=OneWay}"/>




        </Core:EventTriggerBehavior>




        <Core:DataTriggerBehavior Binding="{Binding CurrentTime.Second}"




                ComparisonCondition="GreaterThanOrEqual" Value="0">




            <Media:PlaySoundAction Source="Assets/beep.wav"/>




        </Core:DataTriggerBehavior>




</Interactivity:Interaction.Behaviors>


总结

Behavior SDK的behavior和action组件能够将特定元素的事件和参数传递到相应模型上,这对于使用MVVM框架来说是十分方便的。

开发者交流群:53078485,期待您的加入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Infineon英飞凌高边开关是一款高性能、高可靠性的电子器件,广泛应用于工业自动化、汽车电子、医疗设备等领域。对于工程师而言,掌握Infineon英飞凌高边开关的开发应用技巧尤为重要。 首先,为了实现高效的电路设计,需要对电压、电流、功率等相关参数进行充分的考虑。以Infineon英飞凌高边开关为例,在驱动方面要注意输出引脚的电流、驱动电压范围与驱动能力等参数。在控制方面,需要注意芯片内的保护电路、EAP、DAP等控制引脚的设置,以及芯片内部的保护逻辑。 其次,应用手记中对电路的阻容滤波、脉宽调制、电感耦合等方案进行了详细的介绍。在不同的应用场合下,选择不同的方案可以最大程度地提高电路性能。此外,通过手记还可以掌握如何设计稳定的启动电路、提高系统稳定性的解决方案等技巧。 最后,手记中还提供了Infineon英飞凌高边开关运用到的各种应用案例。如在汽车电子领域,Infineon英飞凌高边开关可以应用于驱动负载、照明、电动窗、电动座椅等部件;在医疗设备领域,可以应用于低噪音电源、嵌入式控制器等方案中。这些案例不仅可以为工程师们提供借鉴,还可以让工程师们更好地了解Infineon英飞凌高边开关的应用实际情况,为工程项目的实现提供有价值的经验。 ### 回答2: Infineon英飞凌的高边开关(high-side switch)是一种电力转换器,适用于断开或关闭直流电源电路中正电源电流的控制。其主要作用是可以控制电路开关状态,从而实现电路的高效率和稳定性。应用范围广泛,包括汽车电子、工业控制、灯光控制、家电等领域。 Infineon英飞凌的高边开关具有多种特点,例如高可靠性、低开关损耗、宽电源电压范围、集成过温保护等。其开关管的驱动也非常重要,可由电压控制、电流控制或者组合控制实现。通过控制信号的变化实现开关状态的切换,从而达到灵活性和可靠性的同时提高了效率。 在具体应用中,使用Infineon英飞凌的高边开关需要遵循一定的设计流程和注意事项。设计流程包括系统需求分析、数据手册评估、选型与确认、电路设计与布局、电路实现及测试等。在注意事项方面,需要特别注意工作温度、过压、过流等问题,同时应选择合适的维护和保养方法,以确保高边开关的可靠性和稳定性。 总之,Infineon英飞凌的高边开关是一种可靠性高、效率好的电力转换器,广泛应用于各个领域。在具体应用时,需要遵循一定的设计流程和注意事项,以确保其高效、稳定、可靠地运行。 ### 回答3: Infineon英飞凌高边开关是一种高性能的晶体管,常用于汽车电子、工业控制、电源等领域。其特点是能够承受高压输入,并且具备快速开关能力。 在汽车电子领域,Infineon英飞凌高边开关常常用于控制车灯、制动系统、空调等设备。通过对高边控制电路的设计,可以实现对这些设备的高效控制和保护。 在工业控制领域,Infineon英飞凌高边开关常用于马达控制、电热器控制等场景。在这些场景中,高边开关能够提供更加高效的电流控制,并且能够承受大电流输入。 在电源领域,Infineon英飞凌高边开关则可以用于直流到直流的转换。通过这种方式,可以实现更加高效的能量转换,减少能量损耗。 总之,Infineon英飞凌高边开关在各个领域中的应用非常广泛。通过对其特性和控制技术的深入研究,可以实现更加高效、安全、稳定的电子设备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值