基于Silverlight智能表单设计开发(二)

本文介绍在Silverlight环境下智能表单设计中的锚点类设计与实现方法。锚点作为表单控件的一部分,允许用户通过拖拽改变控件尺寸。文章详细解释了锚点方位设置及对应的鼠标光标变化。

     继续上节《基于Silverlight智能表单设计开发(一)》,从这一节开始对系统进行类设计,采用简单表意类图为主和关键代码片段为辅来进行描述,表达我的设计思路。下面我从表单设计锚点类设计为起点,逐步展开、自底向上进行分析。

     锚点是当控件被选中时在控件四周出现的小矩形框,鼠标通过拖拽小矩形框(锚点)来改变控件的高度和宽度,同时设置控件锚点的可见性向用户表明控件是否被选中。如下图所示:

    一、锚点类(Auchor)   

     锚点类主要包含锚点方位属性(AuchorLocation)用于确定锚点在控件上所处的位置,如:左上方、上中、右上方等。

     1、类图

     

     2、代码片段

     首先看Auchor锚点界面XML代码,在XML代码的作用主要是通过Rectangle画一个小正方形,正方形边框宽为1px,边框颜色是黑色,并用浅蓝色画笔填充:

     


  
< Grid x:Name ="LayoutRoot" >
< Rectangle x:Name ="rtg" Stroke ="Black" StrokeThickness ="1" Cursor ="Hand" Fill ="#FFCBC8DD" ></ Rectangle >
</ Grid >

     Auchor锚点类实现代码,锚点类主要通过Location方位属性来设置锚点所处方位,以及与方位对应的光标:

 

代码

   
/// <summary>
/// 锚点方位
/// </summary>
public enum AuchorLocation { 上左,上中,上右,右中,左中,下左,下中,下右}
/// <summary>
/// 锚点控件类
/// </summary>
public partial class Auchor : UserControl
{
AuchorLocation location;
/// <summary>
/// 获取或设置锚点方位
/// </summary>
public AuchorLocation Location
{
get { return location; }
set
{
location
= value;
if (value == AuchorLocation.上右 || value == AuchorLocation.下左) rtg.Cursor = Cursors.SizeNESW;
if (value == AuchorLocation.上左 || value == AuchorLocation.下右) rtg.Cursor = Cursors.SizeNWSE;
if (value == AuchorLocation.上中 || value == AuchorLocation.下中) rtg.Cursor = Cursors.SizeNS;
if (value == AuchorLocation.右中 || value == AuchorLocation.左中) rtg.Cursor = Cursors.SizeWE;
}
}


}

 

     以上就是锚点的设计及实现方法,锚点是智能表单设计的基础元素,先解决它为后继工作做好准备,在下一章节中我们将涉及另一个基础元素设计容器类(DesignRectangle). . . . . .

 

   

 

 

 

转载于:https://www.cnblogs.com/liuqiwu/archive/2010/12/03/gsunis01.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值