自然资源网站建设方案,app开发公司怎么选,手机端网站建设公司,修改wordpress的语言Canvas 画矩形#xff1a; view和viewModel 绑定一起才显示移动轨迹#xff08;可以定义一个string 看是否绑定属性的路径是正确的#xff09; 前台#xff08;绑定事件和显示移动的线#xff09;#xff1a;
Canvas Namecanvas Background#01FF…Canvas 画矩形 view和viewModel 绑定一起才显示移动轨迹可以定义一个string 看是否绑定属性的路径是正确的 前台绑定事件和显示移动的线
Canvas Namecanvas Background#01FFFFFF PreviewMouseLeftButtonDownVDM_MouseLeftButtonDown PreviewMouseMoveVDM_MouseMovePreviewMouseLeftButtonUpVDM_MouseLeftButtonUp
/CanvasCanvasRectangle IsHitTestVisibleFalse StrokeRed x:NamerectStrokeDashArray1,2 StrokeThickness1 StretchFill Width{Binding RectWidth} Height{Binding RectHeight} Canvas.Left{Binding RectLeft} Canvas.Top{Binding RectTop}/
/Canvas
后台
若view和其他viewmodel绑定了 可以用rect.DataContext Model; DVMModel Model new DVMModel(); DVMModel属性定义 如果view和后台绑定
bool is_LeftButtonDown false;public void VDM_MouseLeftButtonDown(object view, MouseButtonEventArgs e)
{Canvas canvas view as Canvas;Point pt Mouse.GetPosition(canvas);downPt pt;is_LeftButtonDown true;if (pt.X 0 || pt.X canvas.ActualWidth || pt.Y 0 || pt.Y canvas.ActualHeight){is_LeftButtonDown false;}
}鼠标移动绘制矩形
public void VDM_MouseMove(object view, MouseEventArgs e)
{//鼠标坐标点Point pt Mouse.GetPosition(view as Canvas);if (is_LeftButtonDown e.LeftButton MouseButtonState.Pressed) //确定鼠标左键处于按下状态{isMove true;if (pt.X 0 || pt.X canvas.ActualWidth || pt.Y 0 || pt.Y canvas.ActualHeight){is_LeftButtonDown false;Model.RectHeight 0;Model.RectWidth 0;}else{double left (downPt.X pt.X) ? downPt.X : pt.X;double top (downPt.Y pt.Y) ? downPt.Y : pt.Y;double width Math.Abs(downPt.X - pt.X);double height Math.Abs(downPt.Y - pt.Y);// 画矩形Model.RectLeft left;Model.RectTop top;Model.RectWidth width;Model.RectHeight height;canvas.CaptureMouse(); //捕获鼠标}}
}鼠标弹起完成矩形绘制
public void VDM_MouseLeftButtonUp(object view, MouseButtonEventArgs e)
{Canvas canvas view as Canvas;if (is_LeftButtonDown isMove){is_LeftButtonDown false;isMove false;Point pt Mouse.GetPosition(canvas);double Wscale canvas.ActualWidth / SingalSize.Width; //SingalSize 分辨率double Hscale canvas.ActualHeight / SingalSize.Height;double left (downPt.X pt.X) ? downPt.X : pt.X;double top (downPt.Y pt.Y) ? downPt.Y : pt.Y;double width Math.Abs(pt.X - downPt.X);double height Math.Abs(pt.Y - downPt.Y);OsdStartX.Text Convert.ToInt32(left).ToString();OsdStartY.Text Convert.ToInt32(top).ToString();if (width * Wscale 512)HLength.Text 512;elseHLength.Text Convert.ToInt32(width * Wscale).ToString();if (height * Hscale 64)VLength.Text 64;elseVLength.Text Convert.ToInt32(height * Hscale).ToString();// 画矩形Model.RectHeight 0;Model.RectWidth 0;canvas.ReleaseMouseCapture(); //释放捕获鼠标}
}