在论坛中看到经常有人碰到如何在SilverLight多个页面或者控件中传替参数或者值的问题,今天抽空通过Delegate机制实现回调实例方法重设动画参数的DEMO,分享给大家。最终结果如图:
演示地址:http://xingjunli.webs.com/DelegateDemo.html
参考资料:动画概述:http://msdn.microsoft.com/zh-cn/library/cc189019(VS.95).aspx 委托:http://msdn.microsoft.com/zh-cn/library/900fyy8e.aspx
1、初识委托:
委托delegate有点类似于非托管C/C++中的函数指针,在C#中通过委托机制来回掉实例方法,静态方法等(更重要是委托为托管代码,能保证回调方法的类型的安全)
2、使用委托回调实例方法:
2.1、用C#的delegate关键字来定义回掉函数的签名(本示例中我们通过一个单独的类来实义委托以提高重用):
2.2、在子窗体类中我们定义一个委托类型对象如:
2.3、在父窗体中实例化子窗体时将实例方法传递给委托:
3、上面我们应用委托实现了最简单的应用,实际工作中会复杂的多;我们的编译器和CLR为我们做了大量幕后工作以减轻使用的复杂性;如需了解更多请参考:委托(C# 编程指南)http://msdn.microsoft.com/zh-cn/library/ms173171.aspx
实现步骤(附源代码):
声明委托类型:
子窗体XAML:
子窗体CS:
父窗体XAML:
父窗体CS:
结束语:SilverLight同.Net FrameWork本身已经很好的结合起来,C#中一些实用的编程机制(如:委托),在SL中合理运用,将给我们带来意想不到的收获!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。