六 增强的用户体验功能
6.5 约束性检查
在用户保存流程时,系统需要对用户当前配置的流程进行一般性的约束检查。这些约束性检查包括以下部分:
l 每个流程都必须有一个开始活动以及一个结束活动。
l 开始活动不能有前驱活动,必须有至少一个后续活动。
l 结束活动不能有后继活动,必须至少有一个前驱活动。
l 分支活动有且只有一个前驱活动,并且必须至少有一个后续活动。
l 汇聚活动有且只有一个后继活动,并且必须至少有一个前驱活动。
l 常规交互活动必须至少有一个前驱活动和后继活动(常规交互活动默认拥有或分支以及或汇聚活动的特性)。
l 每个规则都必须有起始活动和终结活动。
l 任何两个规则的起始活动和终结活动不能都相同。
通过以上程序检查的流程符合一般性约束条件,但并不表明这是一个完全正确的流程。这些检查只是一种编译性检查,不包含运行时的检查。运行时检查是指流程在运行过程中的一些约束性检查。这些包括但不限于:
l 规则条件的编写运行时检查。
l 流程死循环检查。
等等。
本程序只涉及到一般性的约束检查。
在保存流程时,根据上面的约束条件检查每一个活动和规则,对于不满足条件的,则给出相应提示,如下图所示:
6.6 增加动画效果
使用System.Windows.Media.Animation命名空间中的相关类来设置动画效果,本文中的动画效果很简单,在现实右键菜单时以及隐藏右键菜单时,采用渐进的现实和隐藏。
Xaml代码如下:
<StackPanel.Resources>
<Storyboard x:Name="sbShowMenu">
<DoubleAnimation From="0" To="170" Duration="00:00:0.2"
Storyboard.TargetName="spContentMenu"
Storyboard.TargetProperty="Height">
<DoubleAnimation.EasingFunction>
<CircleEase EasingMode="EaseIn"/>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
<Storyboard x:Name="sbCloseMenu">
<DoubleAnimation From="170" To="0" Duration="00:00:0.2"
Storyboard.TargetName="spContentMenu"
Storyboard.TargetProperty="Height">
<DoubleAnimation.EasingFunction>
<CircleEase EasingMode="EaseIn"/>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</StackPanel.Resources>
还有一个改进就是曲线的改进。
七 多文化
Silverlight中的多文化编程方式和asp.net中的十分相识,如果您熟悉asp.net中的多文化编程,那么对于sliverlight多文化编程您一定似曾相识。但是silverlight2.0种对于多文化的支持好像还有一点bug,所以在编写的过程中遇到很多的问题。参考了网上的解决方案,在此就不必再重复了,Terrylee已经写的很清楚了。
http://www.cnblogs.com/Terrylee/archive/2008/06/19/localization-in-silverlight-2-beta-2-part1.html