使用鼠标绘制图像
本文关键字:图像 绘制 鼠标 | 更新日期: 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);
}
}