使用silverlight构建一个工作流设计器(十一)(附源代码下载、在线演示、视频教程)
2009-05-20 16:30
1091 查看
源代码下载:http://www.shareidea.net/opensource.htm
在线演示:http://www.shareidea.net/workflow.htm
视频教程: http://www.shareidea.net/video/sharedesigner/sharedesigner.html
技术支持QQ群:85444465
本文系列索引:
使用silverlight构建一个工作流设计器(一)
使用silverlight构建一个工作流设计器(二)
使用silverlight构建一个工作流设计器(三)
使用silverlight构建一个工作流设计器(四)
使用silverlight构建一个工作流设计器(五)
使用silverlight构建一个工作流设计器(六)
使用silverlight构建一个工作流设计器(七)
使用silverlight构建一个工作流设计器(八)
使用silverlight构建一个工作流设计器(九)
使用silverlight构建一个工作流设计器(十)
使用silverlight构建一个工作流设计器(十一)
本章包含以下内容:
l 规则曲线支持两个中间点的移动
l 双击规则中间点,自定对齐曲线
l 增加选定活动的左右、上下对齐功能
Code
public void AlignTop()
{
if (CurrentSelectedControlCollection == null || CurrentSelectedControlCollection.Count == 0)
return;
Activity a = null;
double minY = 100000.0;
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
if (a.CenterPoint.Y < minY)
minY = a.CenterPoint.Y;
}
}
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
a.CenterPoint = new Point(a.CenterPoint.X, minY);
}
}
}
public void AlignBottom()
{
if (CurrentSelectedControlCollection == null || CurrentSelectedControlCollection.Count == 0)
return;
Activity a = null;
double maxY = 0;
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
if (a.CenterPoint.Y >maxY)
maxY = a.CenterPoint.Y;
}
}
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
a.CenterPoint = new Point(a.CenterPoint.X, maxY);
}
}
}
public void AlignLeft()
{
if (CurrentSelectedControlCollection == null || CurrentSelectedControlCollection.Count == 0)
return;
Activity a = null;
double minX = 100000.0;
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
if (a.CenterPoint.X < minX)
minX = a.CenterPoint.X;
}
}
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
a.CenterPoint = new Point(minX, a.CenterPoint.Y);
}
}
}
public void AlignRight()
{
if (CurrentSelectedControlCollection == null || CurrentSelectedControlCollection.Count == 0)
return;
Activity a = null;
double maxX = 0;
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
if (a.CenterPoint.X > maxX)
maxX = a.CenterPoint.X;
}
}
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
a.CenterPoint = new Point(maxX, a.CenterPoint.Y);
}
}
}
在线演示:http://www.shareidea.net/workflow.htm
视频教程: http://www.shareidea.net/video/sharedesigner/sharedesigner.html
技术支持QQ群:85444465
本文系列索引:
使用silverlight构建一个工作流设计器(一)
使用silverlight构建一个工作流设计器(二)
使用silverlight构建一个工作流设计器(三)
使用silverlight构建一个工作流设计器(四)
使用silverlight构建一个工作流设计器(五)
使用silverlight构建一个工作流设计器(六)
使用silverlight构建一个工作流设计器(七)
使用silverlight构建一个工作流设计器(八)
使用silverlight构建一个工作流设计器(九)
使用silverlight构建一个工作流设计器(十)
使用silverlight构建一个工作流设计器(十一)
本章包含以下内容:
l 规则曲线支持两个中间点的移动
l 双击规则中间点,自定对齐曲线
l 增加选定活动的左右、上下对齐功能
六、增强的用户体验功能
6.8规则曲线支持两个中间点的移动
在前面的规则图形中,也支持曲线类型的线条,但是线条的转折点是自动生成的,根据网友的反馈,希望增加可以用户自己移动的转折点,效果图如下:Code
public void AlignTop()
{
if (CurrentSelectedControlCollection == null || CurrentSelectedControlCollection.Count == 0)
return;
Activity a = null;
double minY = 100000.0;
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
if (a.CenterPoint.Y < minY)
minY = a.CenterPoint.Y;
}
}
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
a.CenterPoint = new Point(a.CenterPoint.X, minY);
}
}
}
public void AlignBottom()
{
if (CurrentSelectedControlCollection == null || CurrentSelectedControlCollection.Count == 0)
return;
Activity a = null;
double maxY = 0;
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
if (a.CenterPoint.Y >maxY)
maxY = a.CenterPoint.Y;
}
}
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
a.CenterPoint = new Point(a.CenterPoint.X, maxY);
}
}
}
public void AlignLeft()
{
if (CurrentSelectedControlCollection == null || CurrentSelectedControlCollection.Count == 0)
return;
Activity a = null;
double minX = 100000.0;
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
if (a.CenterPoint.X < minX)
minX = a.CenterPoint.X;
}
}
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
a.CenterPoint = new Point(minX, a.CenterPoint.Y);
}
}
}
public void AlignRight()
{
if (CurrentSelectedControlCollection == null || CurrentSelectedControlCollection.Count == 0)
return;
Activity a = null;
double maxX = 0;
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
if (a.CenterPoint.X > maxX)
maxX = a.CenterPoint.X;
}
}
for (int i = 0; i < CurrentSelectedControlCollection.Count; i++)
{
if (CurrentSelectedControlCollection[i] is Activity)
{
a = CurrentSelectedControlCollection[i] as Activity;
a.CenterPoint = new Point(maxX, a.CenterPoint.Y);
}
}
}
相关文章推荐
- 使用silverlight构建一个工作流设计器(九)(附源代码下载、在线演示、视频教程)
- 使用silverlight构建一个工作流设计器(八)(附源代码下载、在线演示、视频教程)
- 使用silverlight构建一个工作流设计器(十二)(附源代码下载、在线演示、视频教程)
- 使用silverlight构建一个工作流设计器(十)(附源代码下载、在线演示、视频教程)
- 使用silverlight构建一个工作流设计器(三)(附最新源代码下载及在线演示)
- 使用silverlight构建一个图形化流程设计器(二)(附源代码下载及在线演示)
- 使用silverlight构建一个图形化流程设计器(一)(源代码下载及在线演示)
- 使用silverlight构建一个工作流设计器(五)(附最新源代码及在线演示)
- 使用silverlight构建一个工作流设计器(六)(附最新源代码及在线演示)
- 使用silverlight构建一个工作流设计器(七)(附最新源代码及在线演示)
- 使用silverlight构建一个工作流设计器(四)(附最新源代码及在线演示)
- 使用silverlight构建一个工作流设计器(十三)(动态生成流程图片下载_上)
- 使用silverlight构建一个工作流设计器(十四)(动态生成流程图片下载_下)
- 使用silverlight构建一个工作流设计器(二十一)-增加标签(下)
- 使用silverlight构建一个工作流设计器(十八)-持久化数据到数据库—服务器段功能实现
- 使用silverlight构建一个工作流设计器(十七)-持久化数据到数据库—设计webservices接口
- 使用silverlight构建一个工作流设计器(十五)(缩放流程图)
- 使用silverlight构建一个工作流设计器(二十)-增加标签(上)
- 使用silverlight构建一个工作流设计器(十九)-规则与活动的交点的平滑移动
- 使用silverlight构建一个工作流设计器(十六)-持久化数据到数据库—数据库结构