Silverlight绘制简单图形

这两天没事做了个Silverlight鼠标绘图的小程序,程序截图如下

点击左边的图形选项按钮,可以画出不同的图形。

代码如下

首先需要在界面上放一个Canvas

 <Canvas x:Name="View" Background="AliceBlue" MouseLeftButtonDown="View_MouseLeftButtonDown" MouseLeftButtonUp="View_MouseLeftButtonUp" MouseMove="View_MouseMove"/>
后台代码
私有变量
        bool isMove = false;//记录是否移动
        Point startPoint;//记录鼠标移动的起始点
        Polygon py;//图形类型 
     PointCollection pcTriangle; //记录图形需要的点    
 按下鼠标,记录鼠标的起始点,初始化多边形,并添加到canvas中,并且图形获取焦点
            FrameworkElement element = sender as FrameworkElement;
            element.CaptureMouse();
            py = new Polygon()
                    {
                     Fill=new SolidColorBrush(Colors.Red),
                     Name=Guid.NewGuid().ToString()
                    };
            startPoint = e.GetPosition(View);
            pcTriangle = new PointCollection();
            pcTriangle.Add(startPoint);
            py.Points = pcTriangle;
            View.Children.Add(py);
            isMove = true;

移动鼠标,分别向点集合中添加画直角三角形需要三个点
 if (isMove)
            {
                
                pcTriangle.Clear();
                pcTriangle.Add(e.GetPosition(View));
                pcTriangle.Add(new Point(startPoint.X, e.GetPosition(View).Y));
                pcTriangle.Add(startPoint);
               
            }
松开鼠标,释放焦点
            FrameworkElement element = sender as FrameworkElement;
            element.ReleaseMouseCapture();
            isMove = false;
其他的简单图形画法和这个一样,可以一次类推。
PS:不过一直找不到画普通三角形的方法,各位大鸟谁知道的话请提示一下。谢谢

posted @ 2010-07-22 16:41  JerryT  阅读(1297)  评论(1编辑  收藏  举报