Windows Phone开发:做一个简单的绘图板

2015-09-30 14:32:18来源:作者:人点击

其实我们今天要说的就是一个控件——InkPresenter,这个控件并不是十分强大,没办法和WPF中的InkCanvas相比,估计在实际开发中也很少可能会用到它,不过,我们还是来了解一下吧,毕竟用起来也不难。

使用该控件没有什么技术含量,注意一下以下几点就是了:

1、必须明确指定InkPresenter的宽度和高度,也就是不能使用自动值和Margin,不然不能收集墨迹,除非里面有子元素;

2、要收集墨迹,要设置Clip属性;

3、可以使用DrawingAttributes类设置墨迹的大小和颜色。

该控件不能像WPF那样自动实现收集墨迹的功能,也就是说只能是我们自己写代码了。

<Grid><InkPresenterx:Name="MyPresenter"HorizontalAlignment="Left"VerticalAlignment="Top"MouseLeftButtonDown="MyPresenter_MouseLeftButtonDown"LostMouseCapture="MyPresenter_LostMouseCapture"MouseMove="MyPresenter_MouseMove"Background="Transparent"Opacity="1"Width="480"Height="750"/></Grid> usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Net;usingSystem.Windows;usingSystem.Windows.Controls;usingSystem.Windows.Documents;usingSystem.Windows.Input;usingSystem.Windows.Media;usingSystem.Windows.Media.Animation;usingSystem.Windows.Shapes;usingMicrosoft.Phone.Controls;//引入以下命名空间。usingSystem.Windows.Ink;namespaceInkPresentSample{publicpartialclassMainPage:PhoneApplicationPage{StrokeCurrentStroke=null;//构造函数publicMainPage(){InitializeComponent();//设置剪辑,以便收集墨迹RectangleGeometryrg=newRectangleGeometry();//为了使范围准确,应使用控件的最终呈现高度。rg.Rect=newRect(0,0,MyPresenter.ActualWidth,MyPresenter.ActualHeight);MyPresenter.Clip=rg;}privatevoidMyPresenter_MouseLeftButtonDown(objectsender,MouseButtonEventArgse){//当我们点击时获捉鼠标光标MyPresenter.CaptureMouse();//收集当前的光标所在的位置的点StylusPointCollectionsc=newStylusPointCollection();sc.Add(e.StylusDevice.GetStylusPoints(MyPresenter));CurrentStroke=newStroke(sc);//设置笔触的颜色,大小CurrentStroke.DrawingAttributes.Color=Colors.Yellow;CurrentStroke.DrawingAttributes.Width=8;CurrentStroke.DrawingAttributes.Height=8;//把新的笔触添加到集合中MyPresenter.Strokes.Add(CurrentStroke);}privatevoidMyPresenter_LostMouseCapture(objectsender,MouseEventArgse){//当释放鼠标时,也同时释放笔触变量的引用CurrentStroke=null;}privatevoidMyPresenter_MouseMove(objectsender,MouseEventArgse){if(CurrentStroke!=null){//每移动一次鼠标,都收集对应的点。CurrentStroke.StylusPoints.Add(e.StylusDevice.GetStylusPoints(MyPresenter));}}}}

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台