使用鼠标绘制图像

本文关键字:图像 绘制 鼠标 | 更新日期: 2023-09-27 18:14:16

我需要创建一个网页,我可以使用鼠标绘制图像(类似于油漆)。在c#,asp.net或silverlight中是否可能?请帮助

使用鼠标绘制图像

你可以使用javascript来实现这一点看看这个网站jsDraw2D

和这个在javascript中画线

查看本页来源:follow_the_mouse.htm

你可以看到它有鼠标移动功能,你可以得到鼠标坐标,这不是最终的解决方案,你应该自定义它!

是的,这可以在silverlight中使用形状。您必须使用鼠标捕获的MouseDownPoint和MouseUpPoint来绘制图像。下面的方法将向您展示在silverlight

中绘制矩形的示例图
void DrawShape(Shape MyShape, Point MyStartpoint, Point MyEndpoint)
        {
            if (CreateRectangle)
            {
                MyShape.Stroke = new SolidColorBrush(SetColor);
                MyShape.Stroke.Opacity = 0.1;
                MyShape.Fill = new SolidColorBrush(SetColor);
                MyShape.Fill.Opacity = 0;
                MyShape.StrokeThickness = 2;
            if (DrawMode)
            {
                Temp = End;
                DrawMode = false;
            }
                if (Temp.X < MyEndpoint.X && Temp.Y < MyEndpoint.Y)
                {
                    MyShape.SetValue(Canvas.LeftProperty, MyStartpoint.X);
                    MyShape.SetValue(Canvas.TopProperty, MyStartpoint.Y);
                }
                else if (Temp.X > MyEndpoint.X && Temp.Y < MyEndpoint.Y)
                {
                    double LeftX = MyStartpoint.X - (Temp.X - MyEndpoint.X);
                    MyShape.SetValue(Canvas.LeftProperty, LeftX);
                    MyShape.SetValue(Canvas.TopProperty, MyStartpoint.Y);
                }
                else if (Temp.X < MyEndpoint.X && Temp.Y > MyEndpoint.Y)
                {
                    double TopY = MyStartpoint.Y - (Temp.Y - MyEndpoint.Y);
                    MyShape.SetValue(Canvas.LeftProperty, MyStartpoint.X);
                    MyShape.SetValue(Canvas.TopProperty, TopY);
                }
                else if (Temp.X > MyEndpoint.X && Temp.Y > MyEndpoint.Y)
                {
                    double LeftX = MyStartpoint.X - (Temp.X - End.X);
                    double TopY = MyStartpoint.Y - (Temp.Y - End.Y);
                    MyShape.SetValue(Canvas.LeftProperty, LeftX);
                    MyShape.SetValue(Canvas.TopProperty, TopY);
                }
                if (MyStartpoint.X > MyEndpoint.X)
                {
                    MyShape.Width = MyStartpoint.X - MyEndpoint.X;
                }
                else
                {
                    MyShape.Width = MyEndpoint.X - MyStartpoint.X;
                }
                if (MyStartpoint.Y > MyEndpoint.Y)
                {
                    MyShape.Height = MyStartpoint.Y - MyEndpoint.Y;
                }
                else
                {
                    MyShape.Height = MyEndpoint.Y - MyStartpoint.Y;
                }
                //Buttondown = false;
                //diagram.Children.Add(MyShape);
            }
        }