zoukankan      html  css  js  c++  java
  • Silverlight Behavior技术(三)

    Silverlight 3中的Behavior技术(三)

    从前面的介绍中我们可以知道,当我们设计好了Action或Behavior之后,其实不仅是设计师(Designer)可以使用,一般开发人员在撰写应用程序时,也可以将常用的功能封装成了Action或Behavior,让其他开发人员直接套用。

      我们在这边看一个简单的例子,从这个例子当中我们也来看如何设计Action。请参考底下这个画面:




      这是一个很典型的简单输入画面,使用者可以在TextBox中输入文字,但是,当用户点选TextBox的时候,得先把TextBox中的文字先清空后才能输入,体贴一点的程序,会在用户点选该TextBox时,就直接让该TextBox中的文字变成『选取』状态,这样使用者就可以直接输入了:


      当然,要达成这样的功能相当容易,只需要在TextBox的GotFocus事件中撰写『this.TextBox1.SelectAll();』即可。但是每一个TextBox都要这样写,显然很麻烦,如果可以跟刚才一样,把一个对象(Component)直接拖曳到TextBox上,该TextBox就自动具有此功能,岂不挺好?


      是的,我们紧接着就来看如何设计这样的Action。


      请先建立一个Silverlight项目(当然您也可以在现有的Silverlight项目中直接建立Action或Behavior类别,不过为Action或Behavior建立一个独立的项目是比较理想的选择),该项目请选择『Silverlight
    Class Library』即可,接着,请在该项目中建立一个Action类别,当您在项目中选择Add New Item时,可以找到Blend分类下的Action
    Template,我们建立一个名称为『TextBoxAutoSelectAction』的Action,你会发现建立出来的类别如下:

      1. public class TextBoxAutoSelectAction : TriggerAction<DependencyObject> 

      2.     public TextBoxAutoSelectAction() 
      3.     { 
      4.         // Insert code required on object creation below this point. 
      5.     } 
      6.     protected override void Invoke(object o) 
      7.     { 
      8.         // Insert code that defines what the Action will do when triggered/invoked. 
      9.     } 

      请将TriggerAction调整成TargetedTriggerAction,并将改为<TextBox >。

      TargetedTriggerAction是一个泛型类别,其中的则可设定为我们默认的目标对象。例如,我们现在设计的这个TextBoxAction主要的使用对象是TextBox,因此我们可以写成『TargetedTriggerAction』。而继承TargetedTriggerAction这个类别必须要实作Invoke方法,Invoke方法是该Action被触发时,要执行的动作。


      本文来自dotnetWalker的博客,原文地址:http://blog.csdn.net/dotnetWalker/article/details/5438795

  • 相关阅读:
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 133 克隆图
  • 原文地址:https://www.cnblogs.com/fxf568/p/2744332.html
Copyright © 2011-2022 走看看